国产毛多水多高潮高清,久热这里只有精品视频6,国内精品久久久久久久久电影网,国产男同志CHINA69,精品999日本久久久影院,人人妻人人澡人人爽人人精品,亚洲中文无码永久免

LeetCode移动零-KOK官网在线登录

LeetCode移动零

2026-01-17 04:13:32投稿人:新天地電玩APP(太原)有限公司圍觀9738763 評論

LeetCode移動零

給定一個數(shù)組 nums,編寫一個函數(shù)將所有 0 移動到數(shù)組的末尾  ,同時保持非零元素的相對順序。

說明:

  1. 必須在原數(shù)組上操作 ,不能拷貝額外的數(shù)組 。
  2. 盡量減少操作次數(shù) 。
void moveZeroes(int* nums, int numsSize){     int count = 0, length = numsSize-1;    while (length >= 0) {         if(nums[length] == 0) {             count++;//計數(shù)            int temp = length;            while (temp < numsSize-1) {                 nums[temp] = nums[temp+1];                temp++;            }        }            length--;    }    while (count >0) {         nums[numsSize-count] = 0;        count--;    }}

官方答案 :雙指針法

思路及解法

使用雙指針 ,左指針指向當前已經(jīng)處理好的序列的尾部,右指針指向待處理序列的頭部。

右指針不斷向右移動,每次右指針指向非零數(shù),則將左右指針對應(yīng)的數(shù)交換 ,同時左指針右移  。

注意到以下性質(zhì)  :

左指針左邊均為非零數(shù);

右指針左邊直到左指針處均為零