删除有序vector中的重复值c++
生活随笔
收集整理的这篇文章主要介绍了
删除有序vector中的重复值c++
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
简述
三种方法:
方法一
class Solution { public:int removeDuplicates(vector<int>& nums) {if (nums.size() <= 1) return nums.size();int i = 0, j = i;vector<int>::iterator itr = nums.begin();while (j < nums.size()) {if (nums[j] == nums[i]) { j++; }else { // erase [begin+i+1; begin+j]if (i != j+1) nums.erase(itr + i + 1, itr + j);i++;j = i;}}if (i != j + 1) nums.erase(itr + i + 1, itr + j);return nums.size();} };方法二
class Solution { public:int removeDuplicates(vector<int>& nums) {if (nums.size() <= 1) return nums.size();int i = 0;for(int j = 1; j < nums.size(); ++j) {if (nums[i] != nums[j]) nums[++i] = nums[j];}return i+1;} };方法三
class Solution { public:int removeDuplicates(vector<int>& nums) {if (nums.size() <= 1) return nums.size();int i = 0;for(int j = 1; j < nums.size(); ++j) {if (nums[i] != nums[j]) nums[++i] = nums[j];}nums.erase(nums.begin()+i+1, nums.end());return nums.size();} };总结
以上是生活随笔为你收集整理的删除有序vector中的重复值c++的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 合并两个有序链表(C++)
- 下一篇: 【C++】log(n)斐波那契数列计算