leetcode
迪士尼在逃辣妹的帐号:D
记录学习
展开
-
2020-08-12 81. 搜索旋转排序数组II
代码: 和33题相比,81题的数组中允许重复元素,那么就在if分支中多加一个判断,当nums[first]==nums[mid],就说明它俩是重复元素,first指针向后移就可以了。 class Solution { public: bool search(vector<int>& nums, int target) { int first=0,last=nums.size(); while(first!=last){ c.原创 2020-08-12 21:56:28 · 108 阅读 · 0 评论 -
2020-08-12 33. 搜索旋转排序数组
就是最普通的二分查找法,要注意边界取值,很简单为什么难度是medium class Solution { public: int search(vector<int>& nums, int target) { int first=0,last=nums.size(); while(first!=last){ const int mid=first+(last-first)/2; if(nums[mi.原创 2020-08-12 20:42:56 · 121 阅读 · 0 评论 -
2020-08-12 80. 删除排序数组中的重复项 II
代码1,妙啊~ 还是用index和i两个变量去比较, 因为是已排好序的数组,如果第三个元素与第一个元素相等,就说明有三个重复了。所以,从第三个元素开始比较i和index都初始化为2,然后下标为2的元素与下标为0的元素比较,如果两者不同,那么i和index都往后+1,如果相同就index不变,i一直往后,直到找到与下标为index-1元素不同的,然后去替换它。 class Solution { public: int removeDuplicates(vector<int>&..原创 2020-08-12 19:57:54 · 110 阅读 · 0 评论 -
2020-08-12 26.删除排序数组中的重复项
代码1,在已排序的数组中设置两个标志,前面是index,后面是i,初始时两者数值相差1。在for循环中判断两者是否重复,若没有重复,index与i的值只可能相差1,++index后nums[i]的值相当于赋给了自己;若发生重复,就不会进入for中的if判断,这时候i的值每次加一,一直往后找,直到找到不重复的,把它赋给nums[++index]。 class Solution { public: int removeDuplicates(vector<int>& nums) ..原创 2020-08-12 17:19:29 · 190 阅读 · 2 评论