1. 程式人生 > >LeetCode之RemoveElement

LeetCode之RemoveElement

shuffle java 解法 包括 clas tracking asc 元素 new

題目:

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.

分析:

要求,移除具有n個元素的數組中全部指定的數字,返回刪除後的數組長度。

看似簡單。事實上也能體現一個人的編程水平。
解法1是優化後的,解法2是參照網上的STL解法。記錄下來。

代碼:


解釋一下STL的幾個算法。都包括在algorithm中:
  1. random_shuffle(a,a+20);是將數組元素隨機打亂。

  2. remove(A,A+n,elem);是移除數組中elem元素,可是並沒有把空間縮小,要縮小虛要用erase方法
  3. distance(A,A+n);是計算兩個地址間的距離,也就是元素個數

LeetCode之RemoveElement