解題思路-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
提交後,通過。
相關文章
- Leetcode刷題分類LeetCode
- 75.顏色分類
- leetcode之兩數相加解題思路LeetCode
- 用 Rust 刷 leetcode 第七題RustLeetCode
- LeetCode 272 Closest Binary Tree Traversal II 解題思路LeetCode
- 【考研數學】大家喜歡這種用不同顏色標記解題思路的方式嘛?
- 看雪CTF.TSRC 2018 團隊賽 第七題 『魔法森林』 解題思路
- 用Rust刷leetcode第十五題RustLeetCode
- 二分法解題思路
- 看雪.紐盾 KCTF 2019 Q3 | 第七題點評及解題思路
- 看雪.紐盾 KCTF 2019 Q2 | 第七題點評及解題思路
- 純 CSS 解決自定義 CheckBox 背景顏色問題CSS
- 影像主題顏色提取(Median cut)
- 修改Kali Linux 2020.1主題顏色Linux
- LeetCode題目:39. 組合總和 解題思路及Java實現LeetCodeJava
- leetcode解題模板 —— 二分查詢LeetCode
- 看雪CTF.TSRC 2018 團隊賽 第十五題『 密碼風雲』 解題思路密碼
- 如何更改 Linux 終端顏色主題Linux
- LeetCode3三部曲之一:解題思路LeetCode
- LeetCode題解第122題LeetCode
- 【基礎題】【類】類的設計思路
- leetcode1552題解【二分+貪心】LeetCode
- DFSS的解題思路
- 關於a標籤的字型顏色問題
- [leetcode 題解] 849LeetCode
- Leetcode 全套題解LeetCode
- leetcode題解(陣列問題)LeetCode陣列
- Leetcode題解1-50題LeetCode
- YUV顏色詳解
- vscode如何更改背景顏色主題,黑色或白色?VSCode
- 天地圖修改主題顏色修改背景色地圖
- 破解垃圾分類難題,智慧分類如何實現最優解?
- leetcode題解(查詢表問題)LeetCode
- LeetCode 解題彙總LeetCode
- Leetcode 565 & 240 題解LeetCode
- Shader專題:卡通著色(一)控制顏色的藝術
- P4690 鏡中的昆蟲 (動態區間顏色數) 題解
- 【leetcode 399 周賽】【題解】LeetCode