解題思路-leetcode第七十五題:顏色分類
解題思路-leetcode第七十五題:顏色分類
給定一個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。
此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。
注意:
不能使用程式碼庫中的排序函式來解決這道題。
示例:
輸入: [2,0,2,1,1,0]
輸出: [0,0,1,1,2,2]
進階:
一個直觀的解決方案是使用計數排序的兩趟掃描演算法。
首先,迭代計算出0、1 和 2 元素的個數,然後按照0、1、2的排序,重寫當前陣列。
你能想出一個僅使用常數空間的一趟掃描演算法嗎?
解題思路:本題利用遍歷記錄每種顏色個數的方法解題,建立一個長度為3的列表,記錄每種顏色對應的個數,然後再一次遍歷陣列,按照0,1,2的個數重寫當前陣列。程式碼如下:
class Solution:
def sortColors(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
t = [0 for i in range(3)]
for s in nums:
if s == 0:
t[0] += 1
if s == 1:
t[1] += 1
if s == 2:
t[2] += 1
for m in range(len(nums)):
if m < t[0]:
nums[m] = 0
elif m < t[0]+t[1]:
nums[m] = 1
elif m < t[0]+t[1]+t[2]:
nums[m] = 2
return nums
提交後,通過。
相關文章
- 75.顏色分類
- Leetcode刷題分類LeetCode
- leetcode之兩數相加解題思路LeetCode
- 【考研數學】大家喜歡這種用不同顏色標記解題思路的方式嘛?
- 二分法解題思路
- 第十篇:非均衡分類問題的思考與問題與解決思路
- 用 Rust 刷 leetcode 第七題RustLeetCode
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- 影像主題顏色提取(Median cut)
- 看雪CTF.TSRC 2018 團隊賽 第七題 『魔法森林』 解題思路
- 看雪.WiFi萬能鑰匙 CTF 2017第七題 點評及解題思路WiFi
- 用Rust刷leetcode第十五題RustLeetCode
- LeetCode 272 Closest Binary Tree Traversal II 解題思路LeetCode
- 【基礎題】【類】類的設計思路
- 如何更改 Linux 終端顏色主題Linux
- 看雪.WiFi萬能鑰匙 CTF 2017第十五題 點評及解題思路WiFi
- 看雪.紐盾 KCTF 2019 Q3 | 第七題點評及解題思路
- 看雪.紐盾 KCTF 2019 Q2 | 第七題點評及解題思路
- DFSS的解題思路
- Win10怎麼修改標題欄顏色 win10系統標題欄顏色的修改步驟Win10
- LeetCode題目:39. 組合總和 解題思路及Java實現LeetCodeJava
- YUV顏色詳解
- leetcode解題模板 —— 二分查詢LeetCode
- 天地圖修改主題顏色修改背景色地圖
- 破解垃圾分類難題,智慧分類如何實現最優解?
- AIX問題解決思路AI
- 看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路密碼
- LeetCode3三部曲之一:解題思路LeetCode
- Win10怎麼更換視窗標題欄顏色 win10更換視窗標題欄顏色的方法Win10
- P4690 鏡中的昆蟲 (動態區間顏色數) 題解
- leetcode題解(陣列問題)LeetCode陣列
- Leetcode題解1-50題LeetCode
- leetcode1552題解【二分+貪心】LeetCode
- ML.NET 示例:多類分類之問題分類
- 修改Kali Linux 2020.1主題顏色Linux
- windows10系統怎麼自定義主題顏色Windows
- Win10系統主題顏色太少怎麼辦?Win10
- RenderTexture用在RawImage上時要注意的顏色混合問題