如果能夠領會陣列中的模組思想這道題就可以秒殺了;
我們把陣列中每乙個坑位都當作是必須被重新填的坑位,這是乙個模組;
我們把原陣列當成手中的袋子的資源;對於第乙個坑位來說,我們要做如下判斷,1.袋子裡的第乙個元素是不是要刪除的元素;
是的話直接捨棄這個元素,考慮第二個資源元素;不是的話填入坑位;
同樣,考慮第二個坑位,這樣直到手上的資源為空,同時在填坑的時候計數。
class solution {
public int removeelement(int nums, int val) {
int len = nums.length;
if (len==0 || (len==1 && nums[0]==val) ) return 0;
if (len==1) return 1;
// 至此 可以直接處理長度為2及以上的陣列
int j=0;
int i=0;
int count=0;
while(j模組思想,乙個保守派,乙個躍進派? 其實就是大家說的快慢指標啦,不過我喜歡按自己的理解來--陣列中的模組思想。
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...