摘要:刷題第三天正式刷題第三天。注意空字符串可被認為是有效字符串。錯誤的一次是因為沒有考慮空字符串,當存在為的時候,結果應該為。第二題加一難度簡單類型給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。
刷題第三天
正式刷題第三天。
之前看了個說法,挺認可的。
就是不要太在意一天的能呈現的價值,但是要在意累計的價值。
之前很多時候我會對今天一天沒有完成的計劃而沮喪,事實上,算法的實踐,統計學的學習這些都是需要時間去積累去吃透。
所以,持之以恒的學習更為重要。
現在的目標是每天2題,當適合的時候就提高每天的題量!
20. 有效的括號
難度:簡單
類型:堆棧
給定一個只包括 "(",")","{","}","[","]" 的字符串,判斷字符串是否有效。
有效字符串需滿足:
左括號必須用相同類型的右括號閉合。
左括號必須以正確的順序閉合。
注意空字符串可被認為是有效字符串。
我的解答代碼:
class Solution: def isValid(self, s): """ :type s: str :rtype: bool """ stack = [] dic = {"(":")",")":"(","{":"}","}":"{","[":"]","]":"["} if len(s) < 2: return (len(s)==0) stack.append(s[0]) for i in s[1:]: if len(stack) == 0: stack.append(i) elif i != dic[stack[-1]]: stack.append(i) else: stack.pop() return (len(stack)==0)
用了堆棧的方法和字典的方法,字典查詢速度會比較快。
然后對比當前字符和對應的堆棧里的最末字符對應的另一半。
錯誤的一次是因為沒有考慮空字符串,當存在為""的時候,結果應該為true。
相對而言效率還是是可以的。
本題主要關鍵點
使用dictionary地圖的方式,類似掃描來確認對應的關系。
第二題66. 加一
難度:簡單
類型:??
給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。
最高位數字存放在數組的首位, 數組中每個元素只存儲一個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
我的解題代碼是:
class Solution: def plusOne(self, digits): """ :type digits: List[int] :rtype: List[int] """ a = -1 for i in digits[::-1]: if i != 9 : digits[a] = i+1 return digits else: digits[a] = 0 if (a + len(digits)) == 0: digits.insert(0,1) return digits a = a - 1
用的辦法比較土。
簡單來說就是逆序遍歷,因為十進制下,逢9進位,所以我們逆向計算有存在9的情況。
emmm.....感覺這個方法也很適合用遞歸來做。
效率上居然還可以的,錯誤過一次,主要原因是因為在數據例子為[9]的時候,輸出結果應該為[1,0],所以重新進行了調整。
本題主要關鍵點
搜索了逆序for in遍歷的辦法,最后搜到的是用digits[::-1]的方法,非常有趣。
因為特殊情況下,可能需要在原來的數據基礎上進位,所以需要在數組左側增加一個數位,用insert(位置點,數值)就可以完成了。
總結很多python的方法其實都非常的便捷,簡單的代碼就可以完成算法的實現。
還是要多學習方法,比如今天的逆序遍歷,以及左側插入等。
實踐出真知,古人誠不我欺。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43128.html
摘要:寫在前面今天的小李的目標是排序算法,果然還是要下手寫才會更有體會,也更記得住。排序算法冒泡排序主要是比對相鄰兩個數之間的大小關系,不斷將較大值交換至最后。 寫在前面 今天的小李的目標是排序算法,果然還是要下手寫才會更有體會,也更記得住。 認真做題的分割線 第一題 215. 數組中的第K個最大元素難度:中等在未排序的數組中找到第k個最大的元素。請注意,你需要找的是數組排序后的第k個最大的...
摘要:寫在前面的話好幾天木有刷題啦,今天猛刷了一把,要梳理一個順序好好的學習啦一定要好好執行每天做題的計劃最近真的好忙碌啊,還要做視頻。第二題最大子序和難度簡單給定一個整數數組,找到一個具有最大和的連續子數組子數組最少包含一個元素,返回其最大和。 寫在前面的話 好幾天木有刷題啦,今天猛刷了一把,要梳理一個順序好好的學習啦~一定要好好執行每天做題的計劃!最近真的好忙碌啊,還要做視頻。不過呢,看...
摘要:第二題羅馬數字轉整數難度簡單羅馬數字包含以下七種字符,,,,,和。字符數值例如,羅馬數字寫做,即為兩個并列的。通常情況下,羅馬數字中小的數字在大的數字的右邊。給定一個羅馬數字,將其轉換成整數。 隨便說點啥 TIME:2019-02-01昨晚其實刷了題來著,但是沒有解出來,哭泣!但是,今天重新寫了下,解出來咯~所以今天的題量要增加咯~我會加油的! 第一題 14. 最長公共前綴難度:簡單 ...
摘要:給定一個大小為的數組,找到其中的眾數。第五題合并兩個有序數組難度簡單給定兩個有序整數數組和,將合并到中,使得成為一個有序數組。說明初始化和的元素數量分別為和。第六題二叉樹的最大深度難度簡單給定一個二叉樹,找出其最大深度。 寫在前面的話 做做做題,慢慢上手了就覺得刷題速度變快了,果然還是有點笨~希望最后一竅快點通吧~ 開始做題 第一題 169. 求眾數難度:簡單給定一個大小為 n 的數組...
摘要:寫在前面今天沒有叨逼叨但是又一次錯過了競賽愛睡覺的小李下周要上班,下下周一定要參加了握拳認真做題的分割線第一題兩地調度公司計劃面試人。第人飛往市的費用為,飛往市的費用為。示例輸入輸出解釋第一個人去市,費用為。 寫在前面 今天沒有叨逼叨...但是又一次錯過了競賽...愛睡覺的小李...下周要上班,下下周一定要參加了(握拳 認真做題的分割線 第一題 1029. 兩地調度公司計劃面試2N人。...
閱讀 1867·2019-08-29 16:44
閱讀 2172·2019-08-29 16:30
閱讀 780·2019-08-29 15:12
閱讀 3531·2019-08-26 10:48
閱讀 2659·2019-08-23 18:33
閱讀 3780·2019-08-23 17:01
閱讀 1943·2019-08-23 15:54
閱讀 1302·2019-08-23 15:05