LeetCode27。要素の削除[シンプル]-ダブルポインタ

タイトルの説明:

numの値とvalの値を与えるには、valに等しい値を持つすべての要素を削除し、削除後に配列の新しい長さを返す必要があります。

余分な配列スペースを使用しないでください。使用できるのはO(1)の余分なスペースのみで、入力配列を適切に変更する必要があります。

要素の順序は変更できます。新しい長さを超えて配列の要素を考慮する必要はありません。

私の解決策:

重複する要素を削除するという前の質問と同様に、2ポインターのDafa

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int dis=0;
        for(int i=0;i<nums.size();i++){
            if(nums[i]==val)   dis++;
            else nums[i-dis]=nums[i];
        }
        return nums.size()-dis;
    }
};

公開された66のオリジナル記事 Like1 訪問505

おすすめ

転載: blog.csdn.net/qq_41041762/article/details/105152544