Leetcode_80_Remove Duplicates from Sorted Array II
来源:互联网 发布:2003版办公软件 编辑:程序博客网 时间:2024/05/29 04:21
题目:
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.
大概意思:有一个有序的数组nums, 经过处理之后数组中最多不会有三个重复的元素。返回值是新数组的长度。
思路
1.设置两个指针i,end. i指向的是数组的头。end指向数组的尾巴。
2.看看nums[i+2]是不是等于i,如果是的话(明显这个元素的个数大于两个)删除并且end–。如果不是i继续往前走。
3.返回是end+1
如图所示:
太简单,不用画图。
代码如下
public int removeDuplicates(int[] nums) { if(nums.length==0) return 0; int i=0; int end=nums.length-1; while ((i+2)<=end){ //注意这个越界问题 if(nums[i]==nums[i+2]){ removeEle(nums,i+2);//把i+2给删除掉 end--;//维护一下数组的长度 }else { i++;//如果这个元素个数不大于3 } } return end+1; } public void removeEle(int []nums,int index){ for(int i=index;i<nums.length-1;i++){ nums[i]=nums[i+1]; } }
分析:这里使用了数组删除的操作比较费时间,不过整理来看思路比较简单。leetcode测试时间还是很快的。
阅读全文
0 0
- Leetcode_80_Remove Duplicates from Sorted Array II
- Leetcode_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
- Remove Duplicates from Sorted Array II
- [Leetcode] Remove Duplicates from Sorted Array II
- [LeetCode] Remove Duplicates from Sorted Array II
- Remove Duplicates from Sorted Array II
- [leetcode] Remove Duplicates from Sorted Array II
- Remove Duplicates from Sorted Array II
- Remove duplicates from sorted array II
- Remove Duplicates from Sorted Array II
- [LeetCode]Remove Duplicates from Sorted Array II
- Remove Duplicates from Sorted Array II
- Remove Duplicates from Sorted Array II
- Remove Duplicates from Sorted Array II
- Remove Duplicates from Sorted Array II
- IP设置和网关设置
- 7.29 队列
- UVa 10325 The Lottery 【容斥】【入门】
- Quicksum
- SpringBoot13-springboot核心-基本配置
- Leetcode_80_Remove Duplicates from Sorted Array II
- 暴力求解法--生成子集
- 安卓源代码核心结构
- Android Fragment
- jQuery ajax中使用serialize() 方法提交表单数据
- 7.29 队列
- 触摸屏代码分析——优化措施
- F
- 用C语言打印101~200之间的素数