8.LeetCode:Remove Element

1.題目:

2.解答:

package com.cl.ch2;

import java.util.Arrays;

public class RemoveElement {
    /**
     * 時間複雜度:O(n)
     * 空間複雜度:O(1)
     * @param nums
     * @param val
     * @return
     */
    public int removeElement(int[] nums, int val) {

        int length = 0;
        int k=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]!=val){
                if(i!=k) {
                    swap(nums, i, k++);
                }else{
                    k++;
                }
                    length++;
            }
        }
        return length;
    }

    private void swap(int[] nums, int k, int i) {
        int tem = nums[k];
        nums[k]=nums[i];
        nums[i]=tem;
    }

    public static void main(String[] args) {
        int[] arr = new int[]{3,2,2,3};
        System.out.println(new RemoveElement().removeElement(arr,3));
        System.out.println(Arrays.toString(arr));
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章