LeetCode Remove Element 快速删除数组中的某一值
2013-11-26 16:47
302 查看
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 一个快指针,一个慢指针,不等于特定值的时候,把快指针指向值覆盖慢指针值。这里是用下标表示指针概念了。
我本来以为第一个思路会快点的,不过测试的编译时间差不多,应该速度差别都可以忽略不计。
思路1程序:
思路2程序:
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 一个快指针,一个慢指针,不等于特定值的时候,把快指针指向值覆盖慢指针值。这里是用下标表示指针概念了。
我本来以为第一个思路会快点的,不过测试的编译时间差不多,应该速度差别都可以忽略不计。
思路1程序:
int removeElement(int A[], int n, int elem) { int k = n-1; for (int i = 0; i <= k; i++) { if (A[i] == elem) { while (i<=k && A[k] == elem) k--; if (i<=k && A[k] != elem) { A[i] = A[k]; k--; } } } return k+1; }
思路2程序:
int removeElement(int A[], int n, int elem) { int i = 0, j = 0; for (; i < n; i++) { if (A[i] != elem) { A[j++] = A[i]; } } return j; }
//2014-1-25 update class Solution1 { public: int removeElement(int A[], int n, int elem) { int i = 0, j = 0; for ( ; j < n; j++) { if (A[j] != elem) A[i++] = A[j]; } return i; } };
相关文章推荐
- [C++]LeetCode 27: Remove Element(删除数组中指定元素)
- LeetCode:Remove Element(删除数组中的特定元素)
- 每日一练之Remove Element【LeetCode No.27】—删除数组相应值
- leetcode 27. Remove Element(C语言,快速排序思想,剔除数组中与目标值相等的数)20
- leetcode:Remove Element (删除给定元素)【面试算法题】
- leetCode 27.Remove Element (删除元素) 解题思路和方法
- leetCode 26.Remove Duplicates from Sorted Array(删除数组反复点) 解题思路和方法
- 【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】
- [LeetCode] Remove Duplicates from Sorted Array 从有序数组中删除重复项
- Remove Element 数组中删除给定元素 @ LeetCode
- LeetCode 27. Remove Element(删除元素)
- leetCode 27.Remove Element (删除元素) 解题思路和方法
- leetcode 27 Remove Element(移除数组中的与val相等的元素)
- leetcode:数组之Remove Element
- leetcode:26&80 Remove Duplicates from Sorted Array 删除数组中的重复元素
- leetcode:Remove Element删除元素
- [Leetcode] Remove duplicates from sorted array ii 从已排序的数组中删除重复元素
- LeetCode | Remove Duplicates from Sorted Array(删除有序数组的重复元素)
- LeetCode Remove Duplicates from Sorted Array II 删除整型数组中的重复元素并返回剩下元素个数2
- LeetCode: Remove Duplicates from Sorted Array II(在排序数组中删除重复元素)