LeetCode-27.要素の除去(Remove Element)

3177 ワード

27.要素の除去
Difficulty:シンプル
もっとLeetCodeの答えGithubに注目してください.https://github.com/lxyer/LeetCodeAnswer
配列を指定_nums _値valと、すべての数値を削除する必要があります.val _を選択して、削除した配列の新しい長さを返します.
余分な配列空間を使用しないでください.入力配列を変更し、O(1)余分な空間を使用する条件で完了する必要があります.
要素の順序は変更できます.配列の中で新しい長さの後ろを超える要素を考慮する必要はありません.
例1:
   nums = [3,2,2,3], val = 3,

           2,    nums           2。

                   。

例2:
   nums = [0,1,2,2,3,0,4,2], val = 2,

           5,    nums          0, 1, 3, 0, 4。

             。

                   。

説明:
なぜ返される数値は整数ですが、出力される答えは配列ですか?
入力配列は**の「参照」**で渡されます.これは、関数で入力配列を変更することが呼び出し元に表示されることを意味します.
内部操作は次のように想像できます.
// nums   “  ”     。    ,         
int len = removeElement(nums, val);

//                    。
//            ,                    。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

Solution
Language: Java
class Solution {
    public int removeElement(int[] nums, int val) {
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i]!=val) {
                nums[count] = nums[i];
                count++;
            }
        }
        return count;
    }
}