👨💻
[LeetCode] Top Interview 150: remove-element
リンク
概要
- 整数配列
nums
と、整数val
が渡される -
nums
の中身のうちval
ではない数を、nums
の前方に詰めよう
自分の回答
ポインターとしてk
を定義し、val
でない値があればnumsの前方に詰める。
最後にval
でない数字の数=k
をreturn。
class Solution {
public int removeElement(int[] nums, int val) {
int k = 0;
for(int i=0; i<nums.length; i++) {
if(nums[i] != val) {
nums[k] = nums[i];
k++;
}
}
return k;
}
}
理想的な解法
Solutionsを漁った感じ、上記の解法で問題ないっぽい。
一応この方法はTwo Pointer Methodと呼ばれてるぽい(尺取り法とも)
ふたつのポインターを使ってin-place[1]に処理をする練習問題みたい。
-
配列などを処理する際に、新しく変数をこしらえることなく、データを直接いじって処理すること。 ↩︎
Discussion