LeetCode Online Judge 题目C# 练习 - 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         public static int RemoveElemtn(int[] A, int n, int elem)

 2         {

 3             for (int i = 0; i < n; i++)

 4             {

 5                 if (A[i] == elem)

 6                 {

 7                     A[i] = A[n - 1];

 8                     n--;

 9                     i--;

10                 }

11             }

12             return n;

13         }

代码分析:

  这个应该是考审题,或者面试官之给你题目第一句话,让你去问他的前设条件,他再给你题目的第二句话。

  应为题目说order可以变,new length以外的不管。那么就碰到 A[i] == elem, 把当前最后一个元素复制到A[i], 然后 长度 n--, i--(因为重后面复制上来的值可能会等于elem的,要重新审查一次这个 A[i]。

你可能感兴趣的:(LeetCode)