首页 > 其他 > 详细

[Leetcode]Remove Duplicates from Sorted Array & Remove Element

时间:2016-03-09 14:12:15      阅读:86      评论:0      收藏:0      [点我收藏+]

No.26, Remove Duplicates from Sorted Array

No.27, Remove Element

第一个题是给定一个已经排序的数组,去掉里面所有重复的数字,返回新长度。

这道题不用处理新长度之后的数组元素。那么只需要把不重复的往前面写即可,使用一个计数器看现在写到数组的哪一个位置了,每遍历到一个新数字,则将计数器向后挪一个。最后长度也就是计数器的值。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.empty()){
            return 0;
        }
        int lastnumber=nums[0];
        int number_point=1;
        for(int i=1;i<nums.size();i++){
            if(lastnumber!=nums[i]){
                lastnumber=nums[i];
                nums[number_point]=nums[i];
                number_point++;
            }
        }
        return number_point;
    }
};

第二个题是给定一个数组和一个值,把数组中的该值都去掉,返回一个修改后的数组和数组长度。

跟第一题类似,可以采用一个个遍历再写的方法。当然如果不要求顺序,也可以在效率上采用把最后的元素往前面填坑的方法。

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        if(nums.empty()){
            return 0;
        }
        int number_point=0;
        int count=0;
        for(int i=0;i<nums.size();i++){
            if(nums[i]!=val){
                nums[number_point]=nums[i];
                number_point++;
                count++;
            }
        }
        return count;
    }
};

 

[Leetcode]Remove Duplicates from Sorted Array & Remove Element

原文:http://www.cnblogs.com/lilylee/p/5257944.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!