摘要: 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 tru 阅读全文
posted @ 2022-03-19 15:13 随遇而安== 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 /* 解题思路 先将规律pattern和字符串s分割开来,字符串s可以直接调用String 阅读全文
posted @ 2022-03-19 15:10 随遇而安== 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 /* 两次遍历 我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍 阅读全文
posted @ 2022-03-19 15:08 随遇而安== 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool 阅读全文
posted @ 2022-03-19 15:05 随遇而安== 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 /*缺少的数就是[0,n]的数总和剪去数组里的数的总和*/ class Solution { public int missingNumber(int[] nums) { int n 阅读全文
posted @ 2022-03-19 15:03 随遇而安== 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 丑数 就是只包含质因数 2、3 和/或 5 的正整数。 /* 朴素解法 输入范围是 -2^{31} <= n <= 2^{31} - 1−2 31 <=n<=2 31 −1,我们只需要对输入进行分 阅读全文
posted @ 2022-03-19 15:01 随遇而安== 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 /* 解题思路 时间复杂度为 O(1)O(1)的解法: 除个位外,每一位上的值都是通过 (9+1) 进位的过程得到的,想一下 拨算盘进位 把整数 n 看成 n 样物品,原本是以 10 个 1 份打包的,现在从这些 阅读全文
posted @ 2022-03-19 15:00 随遇而安== 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 /*解题思路:回溯 1.递归参数:根节点 2.终止条件:节点无左右孩子*/ class Solution { List<String> res = new ArrayList<> 阅读全文
posted @ 2022-03-19 14:57 随遇而安== 阅读(14) 评论(0) 推荐(0) 编辑