LeetCode 27 移除元素

2021-10-02 07:18:24 字數 771 閱讀 5917

題目描述 思路

快慢指標(i 是慢指標,j 是快指標)

nums[j] = val 時,跳過

nums[j] != val 時,nums[i] = nums[j],並且 i++

直至 j 遍歷結束,返回 i 的值

時間複雜度 o(n) : i 和 j 至少遍歷 2n 步

空間複雜度 o(1) : 沒有使用額外的陣列空間

實現

/**

* author: lisiyu

* created: 2020/1/19

*/public

class

removeelement27

}return i;

}}

思路2

為了減少不必要的複製,可以在 nums[i] == val 時,將 nums[i] 與最後乙個元素交換,並刪除最後乙個元素,此時陣列長度減小1。

當 nums[i] != val 時,繼續遍歷。

時間複雜度o(n)

空間複雜度o(1)

實現

/**

* author: lisiyu

* created: 2020/1/19

*/public

intremoveelement2

(int

nums,

int val)

else

}return n;

}

LeetCode 27 移除元素

27 移除元素 給定乙個陣列和乙個值,在這個陣列中原地 移除指定值和返回移除後新的陣列長度。不要為其他陣列分配額外空間,你必須使用 o 1 的額外記憶體原地 修改這個輸入陣列。元素的順序可以改變。超過返回的新的陣列長度以外的資料無論是什麼都沒關係。示例 給定 nums 3,2,2,3 val 3,你...

LeetCode 27 移除元素

給定乙個陣列 nums 和乙個值 val,你需要原地 移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3...

leetcode27移除元素

給定乙個陣列 nums 和乙個值 val,你需要原地 移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3...