leetcode 283 移動零,雙指標解法

2021-10-09 02:48:48 字數 409 閱讀 4326

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

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

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

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

儘量減少操作次數。

public

void

movezeroes

(int

nums)

}}

思路:首先逆向思維,將0元素移動到最後面就等於將非0元素移動到最前面,這樣一來我們可以考慮遇到非0元素就往前換,因此我們可以定義乙個快慢指標,慢指標接收非0元素,接受乙個就往前走一格,快指標在前遇到非0就和慢指標交換,這樣等快指標走到頭,非0元素也已經交換完成。

LeetCode283 移動零(簡單)

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

leetcode 283 移動零 快慢指標

給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。思路雙指標法。這道題目相當經典,將所有 0 移動到陣列的末尾,分為兩步,第一是將...

leetcode283 移動零 類似雙指標

include extern void movezeroes int nums,int numssize void main movezeroes a,9 先將陣列中存在的零的數目進行統計,然後再將不等於 的數從左到右依次存到陣列中 剩餘的位置賦值 void movezeroes int nums,...