题解 | #删除升序数组的重复元素(一)#

删除升序数组的重复元素(一)

http://www.nowcoder.com/practice/fa2ea5ccf0394596b4d7829b17b096ca

public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int reArrangeArray(vector<int>& nums) {
        // write code here
        int n = nums.size();
        for (int i=1; i<n; ++i) {
            if (nums[i-1] == nums[i]) {
                nums[i-1] = 0;
            }
        }
        
        int index1 = 0, index2 = 0;
        while (index2 < n) {
            while (index1 < n && nums[index1] != 0) {
                ++index1;
            }
            index2 = index1;
            while (index2 < n && nums[index2] == 0) {
                ++index2;
            }
            
            if (index2 < n) {
                swap(nums[index1], nums[index2]);
                ++index1;
                ++index2;
            }
        }
        
        nums.resize(index1);
        return nums.size();
    }
};
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务