Leetcode題解之陣列(7)移動零

2021-08-31 11:35:01 字數 737 閱讀 6342

題目:

題目描述:

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

示例:

輸入:[0,1,0,3,12]輸出:[1,3,12,0,0]
說明:

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

儘量減少操作次數。

思路:解法1:用兩個指標,分別指向最開始和最結尾兩個下標。每次都比較nums[start]的值是否為0,是的話就,將後面的值向前移動,次數為count=end-star,然後將0賦給nums[end],將下表向左移動一步;如果不為0,移動start指標向右移動。繼續比較。

解法2:通過記錄零出現的次數,將陣列每個元素向前移動zeros格並且和零互換。下表i 遇到零就跳過移動過程,zeros+1。下個元素開始移動zeros+1格 以此類推,每個非零的都會與第乙個為0的元素互換位置。

//解法1.

class solution

nums[end]=0;

end--;

}else}}

}//解法2:

class solution else if(zeros!=0)}}

}

leetcode題解(陣列問題)

面試中的演算法問題,有很多並不需要複雜的資料結構支撐。就是用陣列,就能考察出很多東西了。其實,經典的排序問題,二分搜尋等等問題,就是在陣列這種最基礎的結構中處理問題的,今天主要學習常見的陣列中處理問題的方法。template intbinarysearch t arr,int n,t target ...

Leetcode題解之陣列(8)有效的數獨

題目 題目描述 判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字1 9在每一行只能出現一次。數字1 9在每一列只能出現一次。數字1 9在每乙個以粗實線分隔的3x3宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示...

leetcode陣列 7 整數反轉

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉...