題目鏈接:
27. 移除元素 - 力扣(LeetCode)
思路分析:同樣屬于經典的雙指針移動問題,要掌握固定的思路即可。
算法分析:這個題目可以這樣處理,我們把所有非val 的元素都向前移動,把所有val元素都給放到后面去(也可以不做任何處理)即可。然后移動過程中我們設置一個計數器cnt,表示移動的元素的數量,最后返回cnt即可(表示有多少個非val元素發生了移動)。
參考代碼
class Solution {
public:int removeElement(vector<int>& nums, int val) {int cnt=0;//設置一個計數器for(int i=0;i<nums.size();++i){//遍歷整個數組if(nums[i]!=val)//如果不是題目中給出的valnums[cnt++]=nums[i];//把i位置處的值向前移動}return cnt;//返回非val的數量}
};