您的位置:首页 > 移动开发

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息