LeetCode---Remove Duplicates from Sorted List、Remove Duplicates from Sorted List II解题分析
2016-05-07 21:30
204 查看
题意描述:移除已排序数组中的相同元素,使得每个元素只出现一次,返回新数组长度。如果每个元素允许最多出现两次,返回新的数组长度呢
解题分析:题中明确说明数组已排好序,所以对于让每个元素只出现一次情况,声明两个变量表示下标从i=0,j=1开始,如果j所指向元素与i指向元素相同,则j++,否则++i位置的元素就等于j位置的元素,等到j遍历完整个数组,则数组处理完毕,新的数组的长度就是i+1
对于允许每个元素最多可以出现两次的情况,跟上面处理方法差不多
解题分析:题中明确说明数组已排好序,所以对于让每个元素只出现一次情况,声明两个变量表示下标从i=0,j=1开始,如果j所指向元素与i指向元素相同,则j++,否则++i位置的元素就等于j位置的元素,等到j遍历完整个数组,则数组处理完毕,新的数组的长度就是i+1
int removeDuplicates(int[] nums) { if(nums.length < 1)//当数组长度小于1时不可能有重复元素 return nums.length; int index = 0; for(int i=1; i<nums.length; i++){ if(nums[index] != nums[i]){ nums[++index] = nums[i]; } } return index+1; }
对于允许每个元素最多可以出现两次的情况,跟上面处理方法差不多
int removeDuplicates(int[] nums) { if(nums.length < 2) return nums.length; int index = 2; for(int i=2; i<nums.length; i++){ if(nums[i] != nums[index-2]) nums[index++] = nums[i]; } return index; }
相关文章推荐
- HDU 3111 Sudoku(数独,还是深搜)
- YJX_rxjh_09_2.5.1
- linux JDK安装(一)
- el表达式及jstl标签库
- template详解
- windos系统下通过优盘安装Ubuntu14.04系统
- 如何查看手机里的.db数据库文件
- android:screenOrientation属性
- java 输入/输出
- PowerDesigner 逆向工程 unable to list the tables
- Object-c------NSSet的简单介绍
- spring播放器详细设计说明书(一)
- hdu1010 扩展KMP求字符串最小循环节
- CoreThink主题开发(八)使用H-ui开发博客主题之用户登录之前及登录之后
- traits简单认识
- linux find 命令忽略某个或多个子目录的方法
- 双目视觉简介
- 05Android Studio使用插件推荐
- 容器类之 unordered_map
- 墓碑移动最短路求解问题