1. 程式人生 > 其它 >Java leetcode-27 陣列移除元素

Java leetcode-27 陣列移除元素

技術標籤:java陣列

題目要求:給你一個數組 nums 和一個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 O(1) 額外空間並原地修改輸入陣列。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/remove-element

給定 nums = [0,1,2,2,3,0,4,2], val = 2, 函式應該返回新的長度 5, 並且 nums 中的前五個元素為 0, 1, 3, 0, 4注意這五個元素可為任意順序

思路:這道題比較尷尬的是,我們不能額外建立陣列,只能在原來陣列上操作

public int removeElement(int[] nums, int val) {
        
        if(nums == null || nums.length ==0){
            return 0;
        }
        int j = 0;   //用來表示移除元素後的陣列長度
        int i = 0;
        while(i < nums.length){
            if(nums[i] != val){
            	//遇到和val不相等的元素,將其賦值,陣列下標用j表示
                nums[
j] = nums[i]; j++; } i++; //陣列向後遍歷 } return j; }