LeetCode 26: Remove Duplicates from Sorted Array
来源:互联网 发布:php reflection的作用 编辑:程序博客网 时间:2024/06/05 07:44
原题链接在此:https://leetcode.com/problems/remove-duplicates-from-sorted-array/
这是一道比较简单的题目。要想去除排序数组中的重复数字,容易想到的方案是用一个临时变量lastNum记录上一个数字,再和当前遍历到的数字比较。需要注意的是,题目要求把去重后的数字序列放到数组最前端,比较容易想到的做法是:类似快速排序的算法,用一个变量j来遍历整个数组,用另一个变量i记录当前去重数字序列的最右端;当i和j指向的数字不等时,交换两个数字。
public int removeDuplicates(int[] nums) { int sum = 0; Integer lastNum = null; int i = -1; for (int j = 0 ; j <= nums.length - 1; j++) { if (lastNum == null || lastNum != nums[j]) { i++; sum++; lastNum = nums[j]; swap(nums, i, j); } } return sum; } public void swap(int[] nums, int i, int j) { if (i != j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } }
后面参考了别人的解法,可以对上述算法做一些优化:一是其实不需要交换,只需要覆盖就行;二是可以省去一些非必需的临时变量。新的算法更加简洁。
public int removeDuplicates(int[] nums) { if (nums.length == 0) return 0; int i = 0; for (int j = 1 ; j <= nums.length - 1; j++) { if (nums[j - 1] != nums[j]) { i++; nums[i] = nums[j]; } } return i + 1; }
阅读全文
0 0
- LeetCode(26)Remove Duplicates From Sorted Array
- [leetcode 26] Remove Duplicates from Sorted Array
- [Leetcode] 26 - Remove Duplicates from Sorted Array
- leetcode|26|Remove Duplicates from Sorted Array
- leetcode-26 Remove Duplicates from Sorted Array
- leetcode 26 Remove Duplicates from Sorted Array
- LeetCode 26 Remove Duplicates from Sorted Array
- LeetCode 26 Remove Duplicates from Sorted Array
- LeetCode 26 Remove Duplicates from Sorted Array
- leetcode 26 Remove Duplicates from Sorted Array
- LeetCode---(26) Remove Duplicates from Sorted Array
- Leetcode 26 Remove Duplicates from Sorted Array
- LeetCode 26 - Remove Duplicates from Sorted Array
- Leetcode[26]-Remove Duplicates from Sorted Array
- leetcode 26 -- Remove Duplicates from Sorted Array
- LeetCode 26: Remove Duplicates from Sorted Array
- leetcode[26]:Remove Duplicates from Sorted Array
- leetcode 26 Remove Duplicates from Sorted Array
- Several ports (8005, 8080, 8009) required解决办法
- hdu5152.Friend-Graph(CCPC网络赛)
- Mysql5.6升级到5.7步骤详解
- mac本地搭建伪分布式Hadoop和HBase遇到的问题
- java 正则去除中文标点符号
- LeetCode 26: Remove Duplicates from Sorted Array
- HDU2063--过山车(二分匹配,二分图)
- ccpc预选赛-1005CaoHaha's staff
- typedef 和 define 的用法
- 线程同步的三种方法(Java 并发编程 concurrent包复习)
- Asp.Net core上传文件代码
- GIT和SVN比较
- Android中的子线程和服务的使用
- 线段树(一)