Remove Duplicates from Sorted Array
2016-05-07 16:45
316 查看
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.
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int i;
int n = nums.size();
if(n < 2) return n;
int j = 0;
for (i = 1; i < n; i++){
if(nums[i] != nums[j]){
nums[++j] = nums[i];
}
}
return j+1;
}
};自己第一次编辑的时候,函数直接返回的是j,即return j 然后必然的没有通过测试,结果让我发现了,如果数组里面所有的数字都是一样的这种测试情况下,根本就跳不进去if条件语句,j的值一直是0,所以这一种情况下应该返回的是1,还有就是数组的个数和数组下标之间是差一个1的,所以总的来说,函数返回值应该是j+1,即return j+1.
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.
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int i;
int n = nums.size();
if(n < 2) return n;
int j = 0;
for (i = 1; i < n; i++){
if(nums[i] != nums[j]){
nums[++j] = nums[i];
}
}
return j+1;
}
};自己第一次编辑的时候,函数直接返回的是j,即return j 然后必然的没有通过测试,结果让我发现了,如果数组里面所有的数字都是一样的这种测试情况下,根本就跳不进去if条件语句,j的值一直是0,所以这一种情况下应该返回的是1,还有就是数组的个数和数组下标之间是差一个1的,所以总的来说,函数返回值应该是j+1,即return j+1.
相关文章推荐
- 2016年5月7日所用即所需
- ScrollView&ListView
- idea中的jsp页面out对象无法调用write
- java中的IO整理
- hdu_3068_最长回文(Manacher)
- POJ-1459 Power Network (最大流[Ford-Fulkerson])
- MyEclipse开发J2EE常见问题
- xml解析-dom4j方式
- hdu_3068_最长回文(Manacher)
- 数据结构实验之链表六:有序链表的建立
- 谈C# using的用法与好处
- oracle数据库sql语句
- python 文件读写5个实例
- CSS三列自适应布局
- PAT L1-6. 连续因子 (暴力)
- 【皇甫】☀四套写入方案(仅供参考)
- JobClient
- YJPageView
- Hello World
- c#实现动态加载Dll