leetcode: Remove Element
2014-12-01 22:58
169 查看
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.
解法一:
class Solution {
public:
int removeElement(int A[], int n, int elem) {
int nl, i;
if (n == 0) {
return n;
}
nl = n;
for (i = 0; ;) {
if (A[i] == elem) {
while (A[nl-1] == elem) {
//nl--;
if (i == nl - 1) {
return nl - 1;
}
nl--;
}
A[i] = A[nl-1];
nl--;
}
i++;
if (i >= nl) {
break;
}
}
return nl;
}
};
解法二(很巧妙的解法)
class Solution {
public:
int removeElement(int A[], int n, int elem) {
int len, i, pos;
if (n == 0) {
return n;
}
len = n;
for (i = 0, pos = 0; i < n; i++) {/* just like double arrays */
if (A[i] == elem) {
len--;
} else {
A[pos++] = A[i];
}
}
return len;
}
};
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
解法一:
class Solution {
public:
int removeElement(int A[], int n, int elem) {
int nl, i;
if (n == 0) {
return n;
}
nl = n;
for (i = 0; ;) {
if (A[i] == elem) {
while (A[nl-1] == elem) {
//nl--;
if (i == nl - 1) {
return nl - 1;
}
nl--;
}
A[i] = A[nl-1];
nl--;
}
i++;
if (i >= nl) {
break;
}
}
return nl;
}
};
解法二(很巧妙的解法)
class Solution {
public:
int removeElement(int A[], int n, int elem) {
int len, i, pos;
if (n == 0) {
return n;
}
len = n;
for (i = 0, pos = 0; i < n; i++) {/* just like double arrays */
if (A[i] == elem) {
len--;
} else {
A[pos++] = A[i];
}
}
return len;
}
};
相关文章推荐
- leetcode解题方案--027--Remove Element
- LeetCode----- 27.Remove Element
- 27 | LeetCode | Remove Element
- LeetCode:Remove Element
- leetcode--Remove Element
- [Leetcode] 27. Remove Element
- leetcode-java-27. Remove Element
- LeetCode 之 Remove Element
- LeetCode 27 Remove Element (移除数组中指定元素)
- [Leetcode 2] 27 Remove Element
- 【LeetCode】27. Remove Element
- [Leetcode]27. Remove Element
- 5---LeetCode【tag: Array】【Remove Element】|C语言|总结
- Java for LeetCode 027 Remove Element
- Leetcode:Remove Element
- LeetCode 27 - Remove Element
- Leetcode 27. Remove Element
- LeetCode --- 27. Remove Element
- LeetCode 27. Remove Element
- Remove Element - Leetcode