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