Leetcode:26 Remove Duplicates from Sorted Array
2017-11-21 17:46
381 查看
问题描述:
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 by modifying the input array in-place with
O(1) extra memory.
解决思路:
对于此类问题,对于存储空间的要求比较严格,对于数组而言,简化空间的使用,那么可以在本身的基础上通过覆盖赋值来减小空间复杂度,从而实现题目所要求的O(1)的时间复杂度。
核心代码如下:class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int tag=1; //作为在原数组上创造新数组的赋值标记,第一个数不用管
for(int i=1;i<nums.size();i++)
if(nums[i]==nums[i-1]) continue; //如果对于升序序列中连续相等的话,原标i递增,tag不变
else nums[tag++]=nums[i]; //如果对于升序序列不相等的话,则在新数组的基础上赋值那个不相等的元素
return tag;
}
};因为新数组的赋值在旧数组上是相对之前的,所以新的赋值不会对后续的对与旧数组的操作产生影响,因此可以巧妙的赋值。
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 by modifying the input array in-place with
O(1) extra memory.
解决思路:
对于此类问题,对于存储空间的要求比较严格,对于数组而言,简化空间的使用,那么可以在本身的基础上通过覆盖赋值来减小空间复杂度,从而实现题目所要求的O(1)的时间复杂度。
核心代码如下:class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int tag=1; //作为在原数组上创造新数组的赋值标记,第一个数不用管
for(int i=1;i<nums.size();i++)
if(nums[i]==nums[i-1]) continue; //如果对于升序序列中连续相等的话,原标i递增,tag不变
else nums[tag++]=nums[i]; //如果对于升序序列不相等的话,则在新数组的基础上赋值那个不相等的元素
return tag;
}
};因为新数组的赋值在旧数组上是相对之前的,所以新的赋值不会对后续的对与旧数组的操作产生影响,因此可以巧妙的赋值。
相关文章推荐
- LeetCode: 26. Remove Duplicates from Sorted Array
- [leetcode]--26. Remove Duplicates from Sorted Array
- leetcode.array--26. Remove Duplicates from Sorted Array
- leetcode--26. Remove Duplicates from Sorted Array
- [Leetcode] 26. Remove Duplicates from Sorted Array
- Leetcode 26. Remove Duplicates from Sorted Array
- [LeetCode]26. Remove Duplicates from Sorted Array
- 【LeetCode】26. Remove Duplicates from Sorted Array
- leetcode 26. Remove Duplicates from Sorted Array-数组去重|双指针
- leetcode之26. Remove Duplicates from Sorted Array(C++解法)
- LeetCode 26. Remove Duplicates from Sorted Array(java)
- LeetCode 26. Remove Duplicates from Sorted Array
- [LeetCode]27. Remove Element【&26. Remove Duplicates from Sorted Array】
- LeetCode 26:Remove Duplicates from Sorted Array
- LeetCode(26)题解:Remove Duplicates from Sorted Array
- [leetcode] 26. Remove Duplicates from Sorted Array
- LeetCode 26. Remove Duplicates from Sorted Array
- leetCode 26. Remove Duplicates from Sorted Array 数组
- LeetCode 26. Remove Duplicates from Sorted Array(java)
- LeetCode 26. Remove Duplicates from Sorted Array