摘要: 这个题目是二分搜索的变形题。 当然这个题目,可以利用遍历一遍数组来求解,但是时间复杂度就是O(n)了。这里我们用变体二分搜索的解法来求解这个题目。 //Time:O(log(n)),Space:O(1) class Solution { public: int findMin(vector<int> 阅读全文
posted @ 2020-01-07 21:53 repinkply 阅读(8) 评论(0) 推荐(0)
摘要: //方法一:利用二分搜索法来做 //Time:O(log(n)),Space:O(1) class Solution { public: int mySqrt(int x) { int begin=0; int end=x; while(begin<=end) { long mid=begin+(( 阅读全文
posted @ 2020-01-07 19:10 repinkply 阅读(7) 评论(0) 推荐(0)
摘要: //方法一,利用一个set集合的数据结构 //Time:O(n),Space:O(n) class Solution { public: int singleNumber(vector<int>& nums) { set<int> v; int sum=0,uniqueSum=0; for(int 阅读全文
posted @ 2020-01-07 14:18 repinkply 阅读(7) 评论(0) 推荐(0)
摘要: //方法一,递归版 //Time::O(n),Space:O(1) class Solution { public: int Add(int num1, int num2) { return num2==0?num1:Add(num1^num2,(num1&num2)<<1); } }; //方法二 阅读全文
posted @ 2020-01-06 22:06 repinkply 阅读(3) 评论(0) 推荐(0)
摘要: //Time:O(n),Space:O(n) //动态规划版本的解题方法,类比,求解第n个斐波那契数列 class Solution { public: //求解2个数中的最小数 int min(int a,int b) { return a<b?a:b; } //求解3个数中的最小数 int mi 阅读全文
posted @ 2020-01-06 16:35 repinkply 阅读(7) 评论(0) 推荐(0)
摘要: //Time:O(m+n+l) m为多少个2,n为多少个3,l为多少个5,Space:O(1) class Solution { public: bool isUgly(int num) { if(num<=0) return false; while(num%2==0) num/=2; while 阅读全文
posted @ 2020-01-06 15:43 repinkply 阅读(3) 评论(0) 推荐(0)
摘要: //Time: O(n),Space:O(1) //定义2个游标,也称快慢指针法 class Solution { public: int removeDuplicates(vector<int>& nums) { int p=1; if(nums.size()==0) return 0; for( 阅读全文
posted @ 2020-01-05 16:54 repinkply 阅读(2) 评论(0) 推荐(0)
摘要: //Time:O(n),Space:O(n) //语言:C++11 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res={-1,-1}; unordered_map< 阅读全文
posted @ 2020-01-05 12:46 repinkply 阅读(5) 评论(0) 推荐(0)
摘要: //Time:(O(log(n))),Space:O(1) //此题为二分查找的变形题目,需要先学会二分查找法 class Solution { public: int binarySearchLast(vector<int>& nums,int target) { int begin=0; int 阅读全文
posted @ 2019-12-31 21:33 repinkply 阅读(4) 评论(0) 推荐(0)
摘要: //解法一: class Solution { public: int firstUniqChar(string s) { int ret=-1; int a[26]={0}; for(int i=0;i<s.size();i++) { a[s[i]-'a']++; } for(int i=0;i< 阅读全文
posted @ 2019-12-25 13:24 repinkply 阅读(7) 评论(0) 推荐(0)