每日一题之打家劫舍
问题 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路 很经典的动态规划问题 子问题是偷k间屋子的最大收获。 递推关系式:f(k)=max{f(k−1),H+f(k−2)},H是k-1间房子的收获。 dp数组初始值为 dp[0] = 0; dp[1] = nums[0]; 代码1234567891011121314class Solution { public int rob(int[] nums) { int n = nums.length; int[] dp = new int[n + 1]; // init dp[0] = 0; dp[1] = nums[0]; // loop for (int i = 2; i <= n; i++)...
每日一题之可以攻击国王的皇后
问题 在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。 给定一个由整数坐标组成的数组 queens ,表示黑皇后的位置;以及一对坐标 king ,表示白国王的位置,返回所有可以攻击国王的皇后的坐标(任意顺序)。 后(英文:Queen,Unicode字符♕U+2655,♛U+2656)是国际象棋棋局中实力最强的一种棋子。 后可横直斜走,且格数不限。 吃子与走法相同。 因为后的实力最强,故而在兵升变时,虽然可以选择变为其他棋子,但绝大多数会选择升变为后。 思路 逆向思维,考虑国王周围的八个方向是否有后。 代码12345678910111213141516171819202122232425262728293031323334353637import java.util.ArrayList;import java.util.Arrays;import java.util.List;class Solution { public List<List<Integer>> queensAttacktheKing(int[][]...
每日一题之检查骑士巡视方案
2596. 检查骑士巡视方案 思路 应该使用模拟的方法 对比每次移动是否满足斜着走的规律即可 为了方便比较每次移动路径,需要将矩阵转化为路径序列 代码1234567891011121314151617181920212223242526class Solution { public boolean checkValidGrid(int[][] grid) { if (grid[0][0] != 0) { return false; } int n = grid.length; int[][] indices = new int[n * n][2]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { indices[grid[i][j]][0] = i; indices[grid[i][j]][1] = j; } } for (int i = 0; i < n * n -...
每日一题-平衡二叉树
Leetcode每日一题之平衡二叉树「简单」Link 思路 当且仅当子树都是平衡二叉树时,这个树才是平衡二叉树,明显递归好使 判断子树高度也需要递归 Solution12345678910111213141516class Solution { public boolean isBalanced(TreeNode root) { if (root == null) { return true; } return Math.abs(height(root.left) - height(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root.right); } int height(TreeNode node) { if (node == null) { return 0; } else { return Math.max(height(node.left),...
日本語-第十六弾
休みの日、散歩したり、買い物に 行ったり します。動たり 動たり します。 列举若干有代表性动作 た型换为たり 名词与形容词的列举 一类形容词+かったり「です」 二类形容词/名词+だったり「です」 小句+か 「どうか」「表示不确定的内容」 私は 今年の夏、北京へ 行きますか。+私は わかりません。 → 私は 今年の夏 、北京へ 行くか どうか 分かりません。 李さんは もう すぐ 来ると 思います。小句「简体型」+と 思います 表示说话人的思考内容 名「人」は 小句 と 言いました。 转述他人的话 〜のです・〜んです〜のです・〜んです 表示所讲内容与前文有关联 どうして 〜のです・〜んです 询问理由的更完整形式
日本語-第十五弾
动词た型变换方法是て型变换,てーた、でーだ。 动词た型+ことが あります。「表示过去做过」。(一度も)动词た型 ことが ありません。「否定」 动词た型 後で「あとで」、〜「表示在一件事之后」动词た型 ほうが いいです。「怎么怎么做比较好」也可以用名词+の+ほうがいいです: 私は リンゴの ほうが いいです。 速いですから 飛行機のほうが いいです。 动词ましょうか「提议」简体与敬体动词简体 敬体 简体 现在将来 買います、買いません 買う、買わない 过去 買いました、買いませんでした 買った、買わなかった 敬体 简体 现在将来 あります、ありません ある、ない 过去 ありました、ありませんでした あった、なかった 一类形容词谓语简体 敬体 简体 现在将来 忙しいです 忙しい 现在将来 忙しく ないです 忙しく ない 过去 忙しかったです 忙しかった 过去 忙しく なかったです 忙しく なかった 二类形容词谓语简体 敬体 简体 现在将来 簡単です 簡単だ 现在将来 簡単では...
日本語-第十四弾
未然型未然型本身无含义,加上ない被称为ない型 表示否定的命令,用 ない型+で+ください 部屋の 鍵「かぎ」を 忘れないで ください。 この部屋には 入らない「はいらない」 ください。 表示必须,用 未然型+なければ+なりません、也可以用ないと いけません 李さんは 今日 早く 帰らなければ なりさせん。 この薬「くすり」は 毎日 飲まなければ ありさせん」。 表示不做也可以。未然+なくても いいです。 明日は 残業「ざんぎょう」しなくても いいです。 靴を 脱が「脱ぐーぬぐ」 なくても いいですか? 名詞は 動詞「基本型」 ことが できます。「表示有xx的能力」 スミスさんは ピアノを 弾く できます。 森さんは 中華料理「ちゅうかりょうり」を 作る できますか? 動詞 前に、~「在某个动作之前」 毎日 寝る 前に シャワーを 浴びます「あびます」。 名詞は 動「基本型」 ことです。「当谓语是一种行为时,使用这个句型」 私の趣味「しゅみ」は 切手を 集めいる「あつめる」 ことです。 动词做名词时,也可使用动词基本型+こと: 小野さんは...