C++学习(1)
来源:互联网 发布:手机铃声制成软件 编辑:程序博客网 时间:2024/05/16 11:34
LeetCode2.1.2
描述
Follow up for ”Remove Duplicates”: What if duplicates are allowed at most twice?For example, Given sorted array A = [1,1,1,2,2,3],
Your function should return length = 5, and A is now [1,1,2,2,3]
代码1:
// LeetCode, Remove Duplicates from Sorted Array IIclass Solution {public:int removeDuplicates(vector<int>& nums) {if (nums.size() <= 2) return nums.size();int index = 2;for (int i = 2; i < nums.size(); i++){if (nums[i] != nums[index - 2])nums[index++] = nums[i];}return index;}};
#include<iostream>#include<vector>using namespace std;class Solution {public:int removeDuplicates(vector<int>& nums) {if (nums.size() <= 2) return nums.size();int index = 2;for (int i = 2; i < nums.size(); i++){if (nums[i] != nums[index - 2])nums[index++] = nums[i];}return index;}};int main(){Solution solution;int a[13] = {1,1,2,3,3,3,4,4,5,6,6,6,6};vector<int> va(a,a+8);for(int i = 0;i < va.size();i++)cout<<a[i]<<" ";cout<<endl;for(vector<int>::iterator it = va.begin();it != va.end();++it)cout<<*it<<" ";cout<<endl;int b = solution.removeDuplicates(va);for(vector<int>::iterator it = va.begin();it != va.end();++it)cout<<*it<<" ";cout<<endl;cout<<b;return 0;}
运行后:
1 1 2 3 3 3 4 4 1 1 2 3 3 3 4 4 1 1 2 3 3 4 4 4 7
和2.1.1同样的问题出现在这里,修改后:
#include<iostream>#include<vector>using namespace std;class Solution {public:int removeDuplicates(vector<int>& nums) {if (nums.size() <= 2) return nums.size();int index = 2;for (int i = 2; i < nums.size(); i++){if (nums[i] != nums[index - 2])nums[index++] = nums[i];else {nums.erase(nums.begin()+index);--i;}}return index;}};int main(){Solution solution;int a[13] = {1,1,2,3,3,3,4,4,5,6,6,6,6};vector<int> va(a,a+13);for(int i = 0;i < va.size();i++)cout<<a[i]<<" ";cout<<endl;for(vector<int>::iterator it = va.begin();it != va.end();++it)cout<<*it<<" ";cout<<endl;int b = solution.removeDuplicates(va);for(vector<int>::iterator it = va.begin();it != va.end();++it)cout<<*it<<" ";cout<<endl;cout<<b;return 0;}运行后:
1 1 2 3 3 3 4 4 5 6 6 6 6 1 1 2 3 3 3 4 4 5 6 6 6 6 1 1 2 3 3 4 4 5 6 6 10
代码2:
// LeetCode, Remove Duplicates from Sorted Array IIclass Solution {public:int removeDuplicates(vector<int>& nums) {const int n = nums.size();int index = 0;for (int i = 0; i < n; ++i) {if (i > 0 && i < n - 1 && nums[i] == nums[i - 1] && nums[i] == nums[i + 1])continue;nums[index++] = nums[i];}return index;}};
0 0
- C#_WinForm学习(1)
- Objective-c 学习 (1)
- 从头学习C#(1)
- C语言学习(1)
- 系统学习C++(1)
- 【c/c++】学习笔记1
- c++/c 学习笔记-基础(1)
- (学习)C Primer Plus(1)
- C语言学习笔记(1)
- c#.net 多线程编程学习(1)
- C和指针学习笔记(1)
- C和指针学习笔记 (1)
- 《Effective C++》学习笔记(1)
- C语言初级学习(1)
- Objective-C 学习笔记(1)
- C语言学习笔记(1)
- Objective c学习笔记(1)
- C语言关键字学习(1)----- extern
- ffmpeg时间戳校正到相同或+1
- 【HTTP协议系列5】http proxy原理
- Android架构收藏
- MySQL数据库操作基本指令
- 四:Hibernate的批量操作
- C++学习(1)
- Nutz学习之初始化数据库遇到的问题
- Android 最简单动画实现(imageView,webview的进入和退出)
- 手机适配
- 复习
- C语言——把自己编程实现字符串函数strstr
- 【从零开始学习MySql数据库】(5)约束视图与索引
- codeforces round 355 div2 D Vanya and Treasure Dp 二维线段树
- visual studio 调试状态下,局部变量窗口不显示某些变量的设置