您的位置:首页 > 其它

LeetCode: 26. Remove Duplicates from Sorted Array

2017-07-12 11:20 525 查看
LeetCode: 26. Remove Duplicates from Sorted Array

Given a sorted array, remove the duplicates in place such that each

element appear only once and return the new length.

Do not allocate extra space for another array, you must do this in

place with constant memory.

For example, Given input array nums = [1,1,2],

Your function should return length = 2, with the first two elements of

nums being 1 and 2 respectively. It doesn’t matter what you leave

beyond the new length.

自己的答案,16ms:

public class Solution {
public int removeDuplicates(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int result = 1;
int i = 1;
while (i < nums.length) {
if (nums[i-1] == nums[i]) {
i++;
continue;
}
nums[result] = nums[i];
result++;
i++;
}
return result;
}
}


15: iload_3
16: aload_1
17: arraylength
18: if_icmpge     53
21: aload_1
22: iload_3
23: iconst_1
24: isub
25: iaload
26: aload_1
27: iload_3
28: iaload
29: if_icmpne     38
32: iinc          3, 1
35: goto          15
38: aload_1
39: iload_2
40: aload_1
41: iload_3
42: iaload
43: iastore
44: iinc          2, 1
47: iinc          3, 1
50: goto          15


最快的答案,11ms:

public class Solution {
public int removeDuplicates(int[] A) {
int n=A.length;
if(n < 2) return n;
int id = 1;
for(int i = 1; i < n; ++i)
if(A[i] != A[i-1]) A[id++] = A[i];
return id;

}
}


15: iload         4
17: iload_2
18: if_icmpge     50
21: aload_1
22: iload         4
24: iaload
25: aload_1
26: iload         4
28: iconst_1
29: isub
30: iaload
31: if_icmpeq     44
34: aload_1
35: iload_3
36: iinc          3, 1
39: aload_1
40: iload         4
42: iaload
43: iastore
44: iinc          4, 1
47: goto          15
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode