leetcode題庫283 移動零

2021-10-05 12:05:24 字數 665 閱讀 3930

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。

示例:

輸入: [0,1,0,3,12]

輸出: [1,3,12,0,0]

說明:

必須在原陣列上操作,不能拷貝額外的陣列。

儘量減少操作次數。

思路

使用兩個陣列,將原陣列的不為0的資料依次儲存在新的陣列中,後面補0即可。

這裡要求在原陣列上操作,就用兩個指標來實現,也就是常說的快慢指標

乙個是遍歷陣列的索引i快指標,指向下乙個是否要移動的值。 乙個是滿指標index,指向下乙個要替換的值。

陣列值不為0,就將nums[i]的值放到nums[index]處。

void movezeroes(vector& nums) 

}//後面全為0

for(int i = index; i < vecsize; ++i)

}

LeetCode283 移動零(簡單)

原題目給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。題目大意 將陣列所有的零移至末尾,且不改變其他數字的順序,且只能開闢常數級...

Leetcode刷題283 移動零

方法1 把陣列中j個非零元素存放在陣列的前j項,之後把後邊的元素設定為0即可,如下 class solution def movezeroes self,nums list int none do not return anything,modify nums in place instead.j ...

LeetCode第283題 移動零

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0 1,0 3,12 輸出 1 3,12 0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。解法一 使用氣泡排序的方法將所有0移動到後面。emps 解法二 遍歷兩次陣列,第...