上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
摘要: 用dp[i]表示组成i的最少的完全平方数的个数。 如果有一个j, 1<=j且jj ⇐ i,如果j的平方是组成i的完全平方数的其中之一个完全平方数,则可以考虑用dp[i - j * j]来更新dp[i]。 即dp[i] = min(dp[i], dp[i - j * j] + 1); 表示组成i的最少 阅读全文
posted @ 2020-08-28 09:52 machine_gun_lin 阅读(127) 评论(0) 推荐(0)
摘要: 调用题目给的API,二分查找第一个错误的版本。 // The API isBadVersion is defined for you. // bool isBadVersion(int version); class Solution { public: int firstBadVersion(in 阅读全文
posted @ 2020-08-28 09:42 machine_gun_lin 阅读(82) 评论(0) 推荐(0)
摘要: class Solution { public: int hIndex(vector<int>& citations) { int n = citations.size(); int res = 0; for(int i = n - 1; i >= 0; --i) { if(citations[i] 阅读全文
posted @ 2020-08-28 09:37 machine_gun_lin 阅读(92) 评论(0) 推荐(0)
摘要: 对所有citations排序,然后从大到小找第一个满足条件的那个citations就是H指数。 class Solution { public: int hIndex(vector<int>& citations) { int res = 0; int n = citations.size(); c 阅读全文
posted @ 2020-08-28 09:32 machine_gun_lin 阅读(69) 评论(0) 推荐(0)
摘要: 英文里每三位就有个逗号,所以我们单独写一个函数处理每三位数之间的表示,然后再根据当前处理的三位数的位数来决定后面是否要加上"thousand","million"啥的。 代码如下: class Solution { public: unordered_map<int, string> numInEn 阅读全文
posted @ 2020-08-28 09:27 machine_gun_lin 阅读(278) 评论(0) 推荐(0)
摘要: 0~n有n+1个数,可以根据等差数列求和公式快速算出总和。减去nums数组的n个数,就能在线性时间内算出缺少了哪个数。 class Solution { public: int missingNumber(vector<int>& nums) { int n = nums.size(); int e 阅读全文
posted @ 2020-08-28 09:15 machine_gun_lin 阅读(104) 评论(0) 推荐(0)
摘要: 因为丑数的因子只有2,3,5,所以我们可以用三指针指向当前最大的三个丑数,下一个丑数必然是当前最大的三个丑数×2、×3、×5得到的三个数中 最小的那一个。 得到新的丑数之后,做了乘法的那个指针就往前移动,这样三个指针时刻指向最大的三个丑数。 class Solution { public: int 阅读全文
posted @ 2020-08-28 09:09 machine_gun_lin 阅读(97) 评论(0) 推荐(0)
摘要: 如果一个数只包含这几个质因子,那就不断的除以这几个质因子,最后如果只剩下1,就是丑数。 class Solution { public: bool isUgly(int num) { while(num >= 5 && num % 5 == 0) { num /= 5; } while(num >= 阅读全文
posted @ 2020-08-28 08:59 machine_gun_lin 阅读(61) 评论(0) 推荐(0)
摘要: 我们知道两个相同的数异或之后就为0,所以对于nums数组中的所有数,异或之后的结果就是那两个只出现一次的数异或的值。 这个值必然不为0(因为这两个数是不同的),所以这个数的二进制表示里,从低位往高位必然有一位1,这一位是1,说明这两个数 在这一位的二进制表示不同(因为这个数是异或得到的),我们可以以 阅读全文
posted @ 2020-08-28 08:53 machine_gun_lin 阅读(70) 评论(0) 推荐(0)
摘要: 将二叉树先序遍历解码为一个序列字符串s,不同的数字之间用逗号分隔,如果遇到空节点,就只在s加上一个","。 如果不是空节点,就先加上当前节点的值,然后再加上逗号。 解码的时候,也是取两个逗号之间的值,如果逗号之间为空,则说明是空节点,否则new一个TreeNode出来,节点的值就是两个逗号之间的 子 阅读全文
posted @ 2020-08-27 18:53 machine_gun_lin 阅读(119) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页