Remove Duplicates from Sorted Array II

来源:互联网 发布:mac系统最新版本10.13 编辑:程序博客网 时间:2024/06/07 13:12

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].

public class Solution {   public int removeDuplicates(int[] A){        if (A.length <= 2){            return A.length;        }int i = 0;int j = 0;int count = 0;int temp = A[0] - 1;while (i < A.length){if ((i + 1 < A.length) && (A[i] == A[i + 1])){i ++;}j = i + 1;while ((j < A.length) && (A[i] == A[j])){A[j] = temp; count ++;j ++;}i = j;}i = 0;if (count > 0){while (i < A.length){while (A[i] != temp){i ++;}j = i + 1;while ((j < A.length) && (A[j] == temp)){j ++;}if (j == A.length){break;}A[i] = A[j];A[j] = temp;i ++;}}return A.length - count;}}


0 0
原创粉丝点击