アルゴリズムトレーニング|要素の削除

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
アイデア:デュアルポインターを使用するには、最初に2つのポインターを同期的に移動させます。val!= nums [fastindex]の場合、slowindexとfastindexは同期的に移動します。これにより、val!= numsの場合、「要素の削除」の効果を後でシミュレートできます。 [fastindex] val == nums [fastindex]の場合、fastindexは移動しますが、slowindexは移動しません。val!= nums [fastindex]の場合、同期して移動することにより、2つの間の要素が「削除」されます。

class Solution {
    
    
    public int removeElement(int[] nums, int val) {
    
    
        int slowIndex = 0; 
        for (int fastIndex = 0; fastIndex < nums.length; fastIndex++) {
    
      
            if (val != nums[fastIndex]) {
    
     
                //当val!=nums[fastIndex]的时候,slowIndex和fastIndex是同步移动的
                nums[slowIndex++] = nums[fastIndex]; 
            }
            //当val==nums[fastIndex]的时候,fastIndex移动,但是slowIndex不移动
        }
        return slowIndex;
    }
}

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_45394002/article/details/115315524