lintcode101 删除排序数组中的重复数字 II

删除排序数组中的重复数字 II 

 

跟进“删除重复数字”:

如果可以允许出现两次重复将如何处理?

在:lintcode100 删除排序数组中的重复数字 的基础上进行改进。

 1 class Solution {
 2 public:
 3     /*
 4      * @param nums: An ineger array
 5      * @return: An integer
 6      */
 7     int removeDuplicates(vector<int> &nums) {
 8         // write your code here
 9         int len = nums.size();
10         if (nums.empty()) return 0;
11 
12         int index = 1;
13         int c = 1;  //c是关键
14         for (int i = 1; i < len; ++i) {
15             if (nums[i] != nums[i - 1]) {
16                 nums[index] = nums[i];
17                 c = 1;
18                 index++;
19             } else if ((nums[i] == nums[i - 1]) && c < 2){
20                 nums[index] = nums[i];
21                 index++;
22                 c++;
23             }
24         }
25         return index;
26     }
27 };

 

 

posted on 2017-10-10 14:09  狗剩的美丽家园  阅读(281)  评论(0编辑  收藏  举报

导航