[leetcode] 80 Remove Duplicates from Sorted Array II(数组下标操作)
来源:互联网 发布:合肥科研知乎 编辑:程序博客网 时间:2024/06/17 15:34
因为这道题目的题意是要求我们在原数组上进行操作,所以操作变得稍微复杂了些,否则直接使用map最为简单。
基本思想是记录两个指针,一个是当前数组,另一个是目的数组,注意如果发现重复数超过2,那么目的数组的cur就要阻塞,
直到不同的出现后再赋值前进。
class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.size()==0) return 0; int cur=1; //修改后数组的下标点 int sum=0,temp; for(int i=1;i<nums.size();i++) { temp=nums[i]; if(nums[i]==nums[i-1]) { sum++; if(sum<2) { nums[cur]=temp; cur++; } } else { sum=0; nums[cur]=temp; cur++; } } return cur; }};
还有一种是网上的解法,一开始没想通,后来发现忘看了条件--->数组已经排好序了,所以仅判断nums[i]和nums[i-2]是可行的。
如果i扫到的当前元素在index之前已经存在两个(注意,由于A是排好序的,因此只需要判断前两个就行),那么i继续前进。否则将i指向的元素加入index,index与i一起前进。
class Solution {public: int removeDuplicates(int A[], int n) { if(n < 3) return n; int index = 2; for(int i = 2; i < n; i ++) { if(A[i] != A[index-2]) A[index ++] = A[i]; } return index; }};
1 0
- [leetcode] 80 Remove Duplicates from Sorted Array II(数组下标操作)
- LeetCode--Remove Duplicates from Sorted Array II (数组操作)
- 【leetcode 数组】Remove Duplicates from Sorted Array II
- [leetcode]【数组】80. Remove Duplicates from Sorted Array II
- LeetCode-Array-80 Remove Duplicates from Sorted Array II
- LeetCode: Remove Duplicates from Sorted Array II
- [Leetcode] Remove Duplicates from Sorted Array II
- LeetCode: Remove Duplicates from Sorted Array II
- [Leetcode] Remove Duplicates from Sorted Array II
- [LeetCode] Remove Duplicates from Sorted Array II
- [leetcode] Remove Duplicates from Sorted Array II
- [LeetCode]Remove Duplicates from Sorted Array II
- [leetcode]Remove Duplicates from Sorted Array II
- LeetCode-Remove Duplicates from Sorted Array II
- [leetcode] Remove Duplicates from Sorted Array II
- LeetCode - Remove Duplicates from Sorted Array II
- LeetCode:Remove Duplicates from Sorted Array II
- LeetCode | Remove Duplicates from Sorted Array II
- 各种边缘检测算法的比较
- java 静态内部类和Builder模式
- hdu 1505 (hdu 1506 的姊妹题)
- [转]Apache配置详解
- 1037. 在霍格沃茨找零钱(20)
- [leetcode] 80 Remove Duplicates from Sorted Array II(数组下标操作)
- 20151030Linux mount,yum源配置,网络配置
- linux文件系统之i节点详解
- Android中使用中Handler的内存泄露问题
- UISwitch
- php通过header发送自定义数据
- UISlider和UIProgressView
- 拉格朗日中值定理
- canvas学习之图像的基本操作