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));
    }
}

猜你喜欢

转载自blog.csdn.net/cl723401/article/details/88669550
今日推荐