Remove Duplicates from Sorted Array II

Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?

For example,
Given sorted array A = [1,1,1,2,2,3],

Your function should return length = 5, and A is now [1,1,2,2,3].

哎。。。不提了,微软终面就挂在这个上面了,不过当时还是挺不好意思的,反正当时就是思路是对的,但是判断条件啊,++什么的写的好复杂,写了能有15、6行的样子,当时就被鄙视了,面试官给我写了一个5行的,还是挺震撼的。

1 public int removeDuplicates(int[] A) {
2         int i = 1;
3         for (int j = 2; j < A.length; j++) {
4             if (A[j] != A[i] || A[j] != A[i - 1]) {
5                 A[++i] = A[j];
6             }
7         }
8         return i + 1 < A.length ? i + 1 : A.length;
9     }
View Code

正好5行吧。。。

posted @ 2014-05-24 14:41  秋风一片叶  阅读(88)  评论(0编辑  收藏  举报