摘要: 一:解题思路 第一种方法:递归法 第二种方法:迭代法 ,2种方法的 Time:O(n),Space:O(n) 二:完整代码示例 (C++版和Java版) 递归C++: class Solution { public: bool hasPathSum(TreeNode* root, int sum) 阅读全文
posted @ 2020-03-15 20:26 repinkply 阅读(173) 评论(0) 推荐(0)
摘要: 一:解题思路 这个题目的解法为:先将2个数进行异或,然后求出异或结果中有多少个1即可。 二:完整代码示例 (C++版和Java版) C++: class Solution { public: int numberofOne(int x) { int count = 0; while (x != 0) 阅读全文
posted @ 2020-03-15 17:42 repinkply 阅读(104) 评论(0) 推荐(0)
摘要: 一:解题思路 第一种方法:利用二分搜索的思想来做。 第二种方法:利用牛顿迭代法来做。两种方法的时间复杂度都为O(log(n)),空间复杂度为:O(1) 二:完整代码示例 (C++版和Java版) 二分搜索C++: class Solution { public: int mySqrt(int x) 阅读全文
posted @ 2020-03-15 17:30 repinkply 阅读(139) 评论(0) 推荐(0)
摘要: 一:解题思路 第一种方法:用一个数字1与原始数字进行按位&,如果不为0,计数器加1,然后数字1向左移动一位,继续检查原始数字的倒数第二位,直到数字1向左移动变为0。Time:O(m),m表示原始数字中二进制1的个数。Space:O(1) 第一种方法变体:判断(n&1) ==1 ? counts+=1 阅读全文
posted @ 2020-03-15 15:34 repinkply 阅读(365) 评论(0) 推荐(0)
摘要: 一:解题思路 这道题目是常规的链表删除的题目,为了使链表的第一个元素和链表的其他元素处理具有相同的方式,创建一各虚拟的节点,让这个虚拟的头节点的next指针指向链表的首节点。Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution 阅读全文
posted @ 2020-03-15 15:01 repinkply 阅读(148) 评论(0) 推荐(0)
摘要: 一:解题思路 这个题目有2种解法。第一种为暴力破解法,求出所有可能的情况,然后得到最大值。Time:O(n^2)。Space:O(1) 第二种方法,采用动态规划的思想。Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) 第一种方法C++: class Solutio 阅读全文
posted @ 2020-03-15 14:22 repinkply 阅读(383) 评论(0) 推荐(0)