LeetCode Remove Element 解题报告
来源:互联网 发布:数据的物理模型 编辑:程序博客网 时间:2024/05/10 00:15
http://oj.leetcode.com/problems/remove-element/
删除数组中等于某value的元素,元素有可能有多个,返回新数组的大小。
基本思路:从前向后找到等于value的元素,从后向前找到第一个不等于value的元素,交换。
AC代码:
public static int removeElement(int[] A, int elem) { int i = 0; int temp; int end = A.length; for(i=0;i<A.length&&i<end;i++) { if(A[i]!=elem) { continue; } end--; while(A[end]==elem&&end>i) { end--; } if (end==i) { return i; } temp = A[i]; A[i] = A[end]; A[end] = temp; } return i;}
这种方法对于各种边界条件要考虑的比较清楚才行,比较容易写错,我也是Wrong Answer好多次之后才AC。
还有一种方法是双指针,一个是在前遍历用的i,一个是在后待写入的start。i会越来越快,start慢一点。把不等于elem的元素都移动到start指向的位置。
public int removeElement(int[] A, int elem) {int start = 0;for(int i=0;i<A.length;i++) {if(A[i]==elem) {A[start++] = A[i];}}return start;}
0 0
- LeetCode Remove Element 解题报告
- LeetCode解题报告--Remove Element
- [LeetCode] Remove Element 解题报告
- 【LeetCode】Remove Element 解题报告
- Leetcode Remove Element解题报告
- [leetcode] 27. Remove Element 解题报告
- [Leetcode] 27. Remove Element 解题报告
- 【LeetCode】27.Remove Element(Easy)解题报告
- Leetcode #27. Remove Element 移除元素 解题报告
- LeetCode-Majority Element -解题报告
- 【LeetCode】Majority Element 解题报告
- leetcode解题集锦之 Remove Element
- leetcode解题方案--027--Remove Element
- LeetCode-Majority Element II-解题报告
- [leetcode] 162. Find Peak Element 解题报告
- [leetcode] 229. Majority Element II 解题报告
- [leetcode] 169. Majority Element 解题报告
- Leetcode解题报告:169. Majority Element
- email 正则表达式
- 在DOS环境下添加背景音乐、改变背景颜色、冻结屏幕和调用系统时间
- 游戏服务器之内存数据库redis客户端应用
- Redis源码学习-Master&Slave的命令交互
- Coedforces 387 C. George and Number
- LeetCode Remove Element 解题报告
- 微信抢红包再成新年新宠
- 日本网络银行损失14亿日元
- [TED]笔记-依照圣经指导原则生活的一年
- 【深入浅出Objective-C】6.5语句
- 大年初一
- 从此开启我的新人生,在此立誓,希共勉!
- 开始
- 【Cocos2dX(2.x)_Lua开发之三】★重要必看篇★在Lua中使用自定义精灵(Lua脚本与自创建类之间的访问)及Lua基础讲解