両手を入れて
、
、
責任トラバース配列全体、
の要素を格納するための責任は繰返さない
、例えば、配列[1,1,2]:
0 | 1 | 2 | 状況 |
---|---|---|---|
1 | 1 | 2 | N [i]を== N [J] |
私 | J | ||
1 | 1 | 2 | |
私 | J | J ++ | |
1 | 1 | 2 | N [i]は!= N [J] |
私 | J | I ++ | |
1 | 2 | 2 | 割り当てN [I] = N [J] |
私 | J | このとき、iは1、出力の長さ=(I + 1) |
Javaコード:
class Solution {
public int removeDuplicates(int[] nums) {
int i=0,j=0;
if(nums.length<=1){
return 1;
}
while(j<nums.length){
if(nums[i]==nums[j]){
j++;
}
else{
i++;
nums[i]=nums[j];
j++;
}
}
return i+1;
}
}
(私たちは、このメソッドは両手法と呼ばれる知っている前のコメントを読みます)