題目: 給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地算法。 思路: 進階: 一個直接的解決方案是使用 O(mn) 的額外空間,但這並不是一個好的解決方案。一個簡單的改進方案是使用 O(m + n) 的額外空間 ...
題目:第 題:給定一個包含紅色 白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。 此題中,我們使用整數 和 分別表示紅色 白色和藍色。 注意: 不能使用代碼庫中的排序函數來解決這道題。 思路: 思路較簡單,提示了進階思路 進階: 一個直觀的解決方案是使用計數排序的兩趟掃描算法。首先,迭代計算出 和 元素的個數,然后按照 的排序,重寫 ...
2020-04-23 11:26 0 604 推薦指數:
題目: 給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地算法。 思路: 進階: 一個直接的解決方案是使用 O(mn) 的額外空間,但這並不是一個好的解決方案。一個簡單的改進方案是使用 O(m + n) 的額外空間 ...
題目: 給定一個正整數 n,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。 思路: 是第54題的逆向過程 程序: class Solution ...
題目: 給定一個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。 思路: 使用兩個指針,然后控制好邊界就可以了。 程序: class Solution ...
題目:給你一個未排序的整數數組,請你找出其中沒有出現的最小的正整數。你的算法的時間復雜度應為O(n),並且只能使用常數級別的額外空間。 思路:第一個思路是創建一個錨點,這個錨點表示第一個正整數的出現的位置,然后再分情況來判斷,結果程序無法通過所有的測試用例,第一個思路方法以后再實現 ...
題目: 給定一個未排序的整數數組,找出最長連續序列的長度。 要求算法的時間復雜度為 O(n)。 思路: 要求的時間復雜度為O(n),則只允許一次循環。 程序: class Solution: def longestConsecutive ...
題目: 給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。進階: 如果你已經實現復雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。 思路:貪心法和分而治之 程序1:貪心發 class Solution ...
題目: 最大數:給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 思路: 根據字符串的特征使用類似冒泡排序的方式來將數組從大到小排序,最后構造結果就好。 程序: class Solution: def largestNumber(self, nums: List ...
題目:給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之后能接多少雨水。 思路:與第11題的思路很像 程序: class Solution: def trap(self, height: List[int ...