leetcode 26. Remove Duplicates from Sorted Array
2016-03-25 13:33
507 查看
1.题目
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,
Given input array nums =
Your function should return length =
It doesn't matter what you leave beyond the new length.
删除数组中重复的元素并返回数组的长度。
2.思路
直接上代码。
</pre><pre name="code" class="cpp">class Solution {
public:
int removeDuplicates(vector<int>& nums) {
//unique从输入序列中“删除”所有相邻的重复元素,其实它并不真正把重复的元素删除,是把重复的元素移到后面去了,然后依然保存到了原数组中,然后 返回去重后最后一个元素的地址
nums.erase(unique(nums.begin(),nums.end()),nums.end());
return nums.size();
};
常规解法。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
for(vector<int>::iterator it=nums.begin()+1;it!=nums.end();it)
{
if(*it==*(it-1)) nums.erase(it);
else it++;
}
return nums.size();
}
};
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,
Given input array nums =
[1,1,2],
Your function should return length =
2, with the first two elements of nums being
1and
2respectively.
It doesn't matter what you leave beyond the new length.
删除数组中重复的元素并返回数组的长度。
2.思路
直接上代码。
</pre><pre name="code" class="cpp">class Solution {
public:
int removeDuplicates(vector<int>& nums) {
//unique从输入序列中“删除”所有相邻的重复元素,其实它并不真正把重复的元素删除,是把重复的元素移到后面去了,然后依然保存到了原数组中,然后 返回去重后最后一个元素的地址
nums.erase(unique(nums.begin(),nums.end()),nums.end());
return nums.size();
};
常规解法。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
for(vector<int>::iterator it=nums.begin()+1;it!=nums.end();it)
{
if(*it==*(it-1)) nums.erase(it);
else it++;
}
return nums.size();
}
};
相关文章推荐
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#比较二个数组并找出相同或不同元素的方法
- C#动态调整数组大小的方法
- 详解Lua中的数组概念知识
- Perl中的列表和数组学习笔记
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- Linux Shell 数组建立及使用技巧
- PowerShell数组的一些操作技巧
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法
- C#实现将数组内元素打乱顺序的方法
- C#中用foreach语句遍历数组及将数组作为参数的用法
- 详解C#编程中一维数组与多维数组的使用
- Ruby简明教程之数组和Hash介绍
- 深入解析C#中的交错数组与隐式类型的数组
- C语言查找数组里数字重复次数的方法