[leetcode] 80.Remove Duplicates from Sorted Array II
来源:互联网 发布:多益网络搬迁后新地址 编辑:程序博客网 时间:2024/06/06 03:17
题目:
Follow up for “Remove Duplicates”:
What if duplicates are allowed at most twice?
For example,
Given sorted array nums = [1,1,1,2,2,3],
Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn’t matter what you leave beyond the new length.
题意:
这道题是在数组中删除重复元素,不过这个重复的意思是元素出现的次数超过了两次,两次及以内可以保存,比如1,1,1,2,2,3,只有1出现了3次,所以需要去掉一个,2只出现了两次所以不需要删除,直接保留,最终的结果是1,1,2,2,3,所以返回数组的长度是5.
思路:
需要三个指针,一个是扫描的当前指针front,一个是与该front不相等元素的指针,还有一个指针store指向的是下一个用来存放元素的位置。
front指向当前元素,tail指向第一个与front不同的元素,如果tail-front == 1,那么只需要将nums[store] = nums[front],front++;否则只保留两个front的元素,即让nums[store] = nums[store +1]= nums[front],front += 2,front+2的位置保留tail所指元素。
代码如下:
class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.size() <= 2)return nums.size(); int front = 0,tail = 0,store = 0; while(tail < nums.size()){ while(tail < nums.size() && nums[tail] == nums[front])tail++; switch(tail - front){ case 1:{ nums[store] = nums[front]; store++; break; } default:{ nums[store] = nums[store + 1] = nums[front]; store += 2; break; } } front = tail; } return store; }};
- leetcode——26. Remove Duplicates from Sorted Array && 80. Remove Duplicates from Sorted Array II
- LeetCode 26. Remove Duplicates from Sorted Array && 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
- Leetcode: Remove Duplicates from Sorted Array II
- 【leetcode】Remove Duplicates from Sorted Array II
- Linux的Local设置
- Extjs3.3. 中用 Echarts
- Spring handler method
- Xcode-Analyze使用
- jQuery siblings() 方法
- [leetcode] 80.Remove Duplicates from Sorted Array II
- androd setTag(key,Object)方法的使用
- mysql使用高版本登录低版本的时候注意的问题
- 如何将数组的键都变为大写-php
- 修改hadoop FileUtil.java,解决权限检查的问题
- 视图局部中,父类设置为不可见,则子类也不可见,即便在代码中 有意设置子类可见 也不行。
- 测试
- (译文)The Linux Programming Interface:第1章(历史和标准)
- nginx+keepalived实现双机热备高可用性