Remove Duplicates from Sorted Array
2016-02-26 09:06
211 查看
描述
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 A = [1,1,2],
Your function should return length = 2, and A is now [1,2].
Remove Duplicates from Sorted Array II
描述
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]
分析
加一个变量记录一下元素出现的次数即可。这题因为是已经排序的数组,所以一个变量即可解决。如果没有排序的数组,则需要引入一个hashmap来记录出现次数。
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 A = [1,1,2],
Your function should return length = 2, and A is now [1,2].
//时间复杂度O(n),空间复杂度O(1) void PrintArray(int A[], int n){ for (int i = 0; i < n; i++){ cout << A[i] << ends; } cout << endl; } int RemoveDuplicates(int nums[], int n){ if (n<=0) { return 0; } else{ PrintArray(nums, n); int index = 0; int hashmap=1; for (int i = 1; i < n; i++){ if (nums[index] != nums[i]){ index++; nums[index] = nums[i]; } } PrintArray(nums, index + 1); //PrintArray(nums, n); return index + 1; } return 0; }
Remove Duplicates from Sorted Array II
描述
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]
分析
加一个变量记录一下元素出现的次数即可。这题因为是已经排序的数组,所以一个变量即可解决。如果没有排序的数组,则需要引入一个hashmap来记录出现次数。
//时间复杂度O(n),空间复杂度O(1) int RemoveDuplicates2(int nums[], int n){ if (n <= 2){ return n; } else{ PrintArray(nums, n); int index = 2; for (int i = 2; i < n; i++){ if (nums[i] != nums[index - 2]){ nums[index] = nums[i]; index++; //有区别的 } } PrintArray(nums, index); return index; } return 0; }
相关文章推荐
- [dp+记忆化搜索]uva10626
- 50个jQuery插件可将你的网站带到另一个高度
- 在OpenResty中使用lua-zlib的方法
- linux内核哈希链表解析
- Collections
- 色彩模式-RGB、HSV、CMYK、灰度模式、位图模式......
- Java Swing界面编程(27)---JRadioButton事件处理
- for in语句对数组进行遍历
- 第六章 背景
- 使用jstack分析解决进程死锁问题
- 为什么说多用组合,少用继承?
- 使用jstack分析解决进程死锁问题
- Myeclipse8.5中安装findbugs
- lnmp 用mongo
- iOS8毛玻璃特效
- 第四章 颜色
- QR码生成原理-QR Code(ISO 18004)编码方式
- servlet与tomcat的关系
- 矩阵快速幂入门-斐波拉契数列
- python3 学习笔记