👨💻
[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