上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 20 下一页
摘要: 如果不考虑进阶的条件,可以直接循环或者递归,把一位上的所有数字加起来然后对10取余。 class Solution { public: int addDigits(int num) { int sum = 0; while(num >= 10) { sum = 0; while(num != 0) 阅读全文
posted @ 2020-08-21 16:14 machine_gun_lin 阅读(112) 评论(0) 推荐(0)
摘要: 一顿dfs就行了,dfs参数里传一个string变量path记录从根节点到当前节点的路径的字符串。 然后dfs里面加一些判断,如果是空就return,如果左右子树都为空就现在结果数组res里记录当前的路径path,然后return。 然后在路径path上加下"->",如果左子树不空就dfs左子树,如 阅读全文
posted @ 2020-08-21 15:17 machine_gun_lin 阅读(72) 评论(0) 推荐(0)
摘要: 对字符串中所有字母做哈希,计算字母的出现频率,哈希表unordered_map<char, int> HashS记录字符串s中每个字母的 出现频率,unordered_map<char, int> HashT记录字符串t中每个字母的出现频率,如果两个哈希表相等,说明t是s的有效 字母异位词,否则不是 阅读全文
posted @ 2020-08-21 14:59 machine_gun_lin 阅读(134) 评论(0) 推荐(0)
摘要: 可以枚举所有的运算符的位置,然后递归算出该运算符左右的表达式所有可能的取值,然后对所有可能的取值进行计算。 首先,我们需要把原字符串input中的所有数字和运算符都放到一个vector里,因为每个数字的长度不确定,所以放到 vector里方便我们进行计算。 然后写一个计算expr某段区间的所有表达式 阅读全文
posted @ 2020-08-21 14:43 machine_gun_lin 阅读(203) 评论(0) 推荐(0)
摘要: 给定二维矩阵,搜索是否存在目标值target,暴力做法可以两重循环遍历数组进行搜索,这样时间复杂度是O(rows * cols), 其中rows,cols为二维矩阵matrix的行数和列数。 我们可以用给定的性质进行优化,因为每行的元素从左到右升序排列,每列的元素从上到下升序排列。 所以我们可以从右 阅读全文
posted @ 2020-08-21 12:44 machine_gun_lin 阅读(109) 评论(0) 推荐(0)
摘要: 暴力做法:可以在遍历数组的时候,当i-k+1>=0(表示当前滑动窗口的大小达到了k),就遍历i-k+1 ~ i的所有元素,寻找最大值, 然后把最大值压入到结果数组res中,显然这种做法需要两重循环,时间复杂度为O(n*k)。 我们考虑一下优化,暴力做法在遍历数组的时候还需要在内层循环遍历来计算当前窗 阅读全文
posted @ 2020-08-21 12:17 machine_gun_lin 阅读(112) 评论(0) 推荐(0)
摘要: 要求出某个数除自身以外的数组的乘积,就要求出这个数前面所有数的乘积和这个数后面的所有数的乘积。 求出这个数前面或者后面所有数的乘积可以用前缀和或者后缀和对数组元素进行连续的乘积得到,但是由于这题限制了我们 只能开一个数组(最后的返回数组),所以前缀和用了数组记录之后,后缀和不能再用数组了。 不过没关 阅读全文
posted @ 2020-08-21 11:02 machine_gun_lin 阅读(106) 评论(0) 推荐(0)
摘要: 这题给出的节点是要删除的节点,而不是要删除的节点的前驱节点,所以,如果直接把这个节点删掉的话,单链表就断掉了, 没办法,所以不能动这个要删除的节点,不过我们可以动这个要删除的节点的下一个节点,但是下一个节点不是我们要删除的节点, 因为他的值我们需要保留,正好我们可以把我们现在指向的节点node的值修 阅读全文
posted @ 2020-08-21 10:40 machine_gun_lin 阅读(71) 评论(0) 推荐(0)
摘要: 对情况进行分类: (1)如果root为空,则返回NULL; (2)如果p和q其中之一为root,则这个节点就是最近公共祖先,返回root; 其他情况下,p和q有可能都在root的左子树、都在root的右子树、或者左右子树各一个; (3)递归计算lowestCommonAncestor(root → 阅读全文
posted @ 2020-08-21 10:34 machine_gun_lin 阅读(83) 评论(0) 推荐(0)
摘要: 二叉搜索树的性质:(1)root为空;(2)或者root左子树中所有元素都小于root->val,root右子树中所有元素都大于root->val, 且root的左右子树也是二叉搜索树。 所以要找两个节点的最近公共祖先,有三种情况: (1)p,q都在root的左子树中,则我们到root的左子树去寻找 阅读全文
posted @ 2020-08-21 10:19 machine_gun_lin 阅读(83) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 20 下一页