Lintcode:删除排序数组中的重复数字
程序员文章站
2022-06-11 13:01:47
...
问题:
给定一个排序数组,在原数组中“删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。
不要使用额外的数组空间,必须在不使用额外空间的条件下原地完成。
样例:
样例 1:
输入: [] 输出: 0
样例 2:
输入: [1,1,2] 输出: 2 解释: 数字只出现一次的数组为: [1,2]
python:
class Solution:
"""
@param: nums: An ineger array
@return: An integer
"""
def removeDuplicates(self, nums):
# write your code here
if nums == None:
return None
index = 0
for i in range(1,len(nums)):
if nums[i] != nums[index]:
index += 1
nums[index] = nums[i]
del nums[index+1:]
return len(nums)
C++:
class Solution {
public:
/*
* @param nums: An ineger array
* @return: An integer
*/
int removeDuplicates(vector<int> &nums) {
// write your code here
if(nums.size() == 0)
{
return 0;
}
int index=0;
for(int i=1;i<nums.size();i++)
{
if(nums[i] != nums[index])
{
index += 1;
nums[index] = nums[i];
}
}
nums.resize(index+1);
return nums.size();
}
};
下一篇: Nginx常用命令