Leetcode: Remove Duplicates from Sorted Array 理解分析
2014-04-22 12:02
344 查看
题目大意:给定一个有序数组,移除数组中重复的元素,保证每个元素只出现一次,并返回新数组的长度。
理解:题目要求不能开额外空间。用指针i始终指示无重复数组的最后一个元素,j指针扫描数组,找到不重复的就放在i+1的位置。
实现:
public class Solution {
public int removeDuplicates(int[] A) {
if(A == null || A.length == 0) return 0;
int len = A.length;
if(len == 1) return 1;
int res = 1;
int i = 0, j = 1;
while(j < len) {
if(A[j] != A[i]) {
res ++;
if(j > i + 1) {
A[i + 1] = A[j];
}
i ++;
}
j ++;
}
return res;
}
}
理解:题目要求不能开额外空间。用指针i始终指示无重复数组的最后一个元素,j指针扫描数组,找到不重复的就放在i+1的位置。
实现:
public class Solution {
public int removeDuplicates(int[] A) {
if(A == null || A.length == 0) return 0;
int len = A.length;
if(len == 1) return 1;
int res = 1;
int i = 0, j = 1;
while(j < len) {
if(A[j] != A[i]) {
res ++;
if(j > i + 1) {
A[i + 1] = A[j];
}
i ++;
}
j ++;
}
return res;
}
}
相关文章推荐
- Leetcode: Remove Duplicates from Sorted Array II 理解分析
- LeetCode :: Remove Duplicates from Sorted Array II 详细分析
- 算法分析与设计课程——LeetCode刷题之Remove Duplicates from Sorted Array
- LeetCode :: Remove Duplicates from Sorted Array [详细分析]
- 【LeetCode】【Array】【26】Remove Duplicates from Sorted Array
- [Leetcode] Remove Duplicates from Sorted Array II
- LeetCode(026) Remove Duplicates from Sorted Array (Java)
- LeetCode (Remove Duplicates from Sorted Array II)
- [C++]LeetCode 26: Remove Duplicates from Sorted Array(有序数组去重)
- leetcode 题解:Remove Duplicates from Sorted Array(已排序数组去重)
- leetcode解题笔记-Remove Duplicates from Sorted Array
- LeetCode-Remove Duplicates from Sorted Array
- leetcode之26. Remove Duplicates from Sorted Array(C++解法)
- Leetcode: Remove Duplicates from Sorted Array
- LeetCode Remove Duplicates from Sorted Array
- [LeetCode]26. Remove Duplicates from Sorted Array
- leetcode 虐我篇之(五)Remove Duplicates from Sorted Array
- LeetCode80 Remove Duplicates from Sorted Array II
- LeetCode 26. Remove Duplicates from Sorted Array
- Remove Duplicates from Sorted Array--LeetCode