删除排序数组中的重复数字
2016-04-15 12:40
197 查看
给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
样例:
给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。
如果可以允许出现重复的两个元素,将如何做?
这道题挺简单的,从i=1开始遍历数组,nums[i]与nums[i-1]比较,如果相等时不做任何处理。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
样例:
给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。
如果可以允许出现重复的两个元素,将如何做?
这道题挺简单的,从i=1开始遍历数组,nums[i]与nums[i-1]比较,如果相等时不做任何处理。
class Solution { public: /** * @param A: a list of integers * @return : return an integer */ int removeDuplicates(vector<int> &nums) { // write your code here int n = nums.size(); if(n<=1) return n; int index=1; for(int i =1;i<n;i++){ if(nums[i]!=nums[i-1]) nums[index++] =nums[i]; } return index; } };
class Solution { public: /** * @param A: a list of integers * @return : return an integer */ int removeDuplicates(vector<int> &nums) { // write your code here 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; } };
相关文章推荐
- Essbase 各类型错误日志所在路径
- Swift:playground
- C++ 串
- 调用系统摄像头拍照,获取原图
- C#获取本地计算机名,IP,MAC地址,硬盘ID
- android中Http访问时 connection.getResponseCode()不被执行
- MSSql数据库设计应注意
- 视频自动生成字幕、ASR技术与在线教育
- ASM(active shape models)算法介绍
- 进制转换
- LeetCode 304. Range Sum Query 2D - Immutable
- Hexo系列1:从零开始搭建hexo博客
- java static 小知识
- 如何在chrome浏览器利用postman应用进行restful api接口请求测试
- 读了几篇boosting文献的收获
- caret包应用之二:特征选择
- Python 练习实例12
- mysql忽略主键冲突、避免重复插入的几种方式
- R.java的不能识别控件的问题
- python2.7初学(〇)