Lettcode_27_Remove Element ——从数组中移除指定元素
2014-11-28 19:13
387 查看
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41577997
Remove Element
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
思路:
(1)这道题很简单。由于没有空间上的限制,很容易解决。
(2)本文的方法是创建一个链表,将和指定数字不同的元素放入链表,最后得到的链表长度即为所求长度。
(3)为了让移除后剩余的数字在默认顺序上,还必须还原数组的顺序,这里直接遍历链表,将其中元素对应到数组中。
(4)本文只是给出解题方法,由于技术有限,效率和空间的优化尚未涉及,对于大神来说,本文的算法就显得很垃圾了,不过也希望对你有所帮助。
算法所对应代码如下所示:
上题的算法只是针对数字,如果改为任意对象,那么我们在判断时,就不能用==来进行判断了,而是用equals()方法来进行值的判断。
从对象数组中移除值相同的指定对象并返回剩余对象个数的算法如下:
Remove Element
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
思路:
(1)这道题很简单。由于没有空间上的限制,很容易解决。
(2)本文的方法是创建一个链表,将和指定数字不同的元素放入链表,最后得到的链表长度即为所求长度。
(3)为了让移除后剩余的数字在默认顺序上,还必须还原数组的顺序,这里直接遍历链表,将其中元素对应到数组中。
(4)本文只是给出解题方法,由于技术有限,效率和空间的优化尚未涉及,对于大神来说,本文的算法就显得很垃圾了,不过也希望对你有所帮助。
算法所对应代码如下所示:
public static int removeElement(int[] A, int elem) { int len = A.length; if (len == 0) return 0; List<Integer> list = new LinkedList<Integer>(); for (int i = 0; i < len; i++) { if (A[i] != elem) { list.add(A[i]); } } for (int i = 0; i < list.size(); i++) { A[i] = list.get(i); } return list.size(); }
上题的算法只是针对数字,如果改为任意对象,那么我们在判断时,就不能用==来进行判断了,而是用equals()方法来进行值的判断。
从对象数组中移除值相同的指定对象并返回剩余对象个数的算法如下:
public static int removeObject(Object[] A, Object elem) { int len = A.length; if (len == 0) return 0; List<Object> list = new LinkedList<Object>(); for (int i = 0; i < len; i++) { if (A[i].equals(elem)) { list.add(A[i]); } } A = new Object[list.size()]; for (int i = 0; i < list.size(); i++) { A[i] = list.get(i); } return list.size(); }
相关文章推荐
- LeetCode27——Remove Element(移除数组中指定的元素)
- Leetcode 27 Remove Element(移除数组中的指定元素)
- LeetCode 27 Remove Element (移除数组中指定元素)
- [LeetCode-27] Remove Element(从数组删除指定的元素)
- 27. Remove Element(移除数组中与指定值相等的元素)
- Leetcode27:Remove Element(移除数组中指定的元素)
- [C++]LeetCode 27: Remove Element(删除数组中指定元素)
- 基于JavaScript实现移除(删除)数组中指定元素
- java算法之简单的移除数组中的指定元素Remove Element
- 【LeetCode-面试算法经典-Java实现】【027-Remove Element(删除数组中指定的元素)】
- leetcode 27 Remove Element(移除数组中的与val相等的元素)
- 项目常用功能模块(3)-移除数组中的指定元素
- LeetCode 27 Remove Element(移除元素)
- Lettcode_26_Remove Duplicates from Sorted Array——移除排序数组中重复元素
- 基于JavaScript实现移除(删除)数组中指定元素
- 移除数组中的指定元素
- 2、(lodash_gcy)移除数组指定元素—remove
- js指定移除数组里面元素
- 移除数组中指定的元素
- 算法---移除数组中的指定元素(简单)