摘要:第二題漢明距離難度簡單兩個(gè)整數(shù)之間的漢明距離指的是這兩個(gè)數(shù)字對應(yīng)二進(jìn)制位不同的位置的數(shù)目。給出兩個(gè)整數(shù)和,計(jì)算它們之間的漢明距離。第三題買賣股票的最佳時(shí)機(jī)難度簡單給定一個(gè)數(shù)組,它的第個(gè)元素是一支給定股票第天的價(jià)格。
寫在前面
這幾天斷斷續(xù)續(xù)做了題目,也在慢慢體會一些數(shù)據(jù)思維。
終于不用邊做視頻邊寫題目啦~
開心~
把這幾天的題解發(fā)一下~
977. 有序數(shù)組的平方
難度:簡單
給定一個(gè)按非遞減順序排序的整數(shù)數(shù)組 A,返回每個(gè)數(shù)字的平方組成的新數(shù)組,要求也按非遞減順序排序。
我的題解:
class Solution(object): def sortedSquares(self, A): """ :type A: List[int] :rtype: List[int] """ result = [0]*len(A) m = 0 n = k = len(A)-1 while m <= n: if A[m]**2 < A[n]**2: result[k] = A[n]**2 n = n -1 else: result[k] = A[m]**2 m = m + 1 k = k - 1 return result
我的思路:
這題參考了思路,有點(diǎn)類似之前做過的一題,因?yàn)榭赡艽嬖谪?fù)數(shù),而且為了減小循環(huán)長度,分別從兩頭來進(jìn)行計(jì)算判斷,并判斷最大值,從數(shù)組的末尾開始計(jì)入。
461. 漢明距離
難度:簡單
兩個(gè)整數(shù)之間的漢明距離指的是這兩個(gè)數(shù)字對應(yīng)二進(jìn)制位不同的位置的數(shù)目。
給出兩個(gè)整數(shù)x和y,計(jì)算它們之間的漢明距離。
我的題解:
class Solution(object): def hammingDistance(self, x, y): """ :type x: int :type y: int :rtype: int """ return (bin(x^y)).count("1")
我的思路:
這題用異或,判斷二進(jìn)制下剩余的1即可。
121. 買賣股票的最佳時(shí)機(jī)
難度:簡單
給定一個(gè)數(shù)組,它的第 i 個(gè)元素是一支給定股票第 i 天的價(jià)格。
如果你最多只允許完成一筆交易(即買入和賣出一支股票),設(shè)計(jì)一個(gè)算法來計(jì)算你所能獲取的最大利潤。
注意你不能在買入股票前賣出股票。
我的題解:
class Solution(object): def maxProfit(self, prices): """ :type prices: List[int] :rtype: int """ min_p, max_p = 999999, 0 for i in range(len(prices)): min_p = min(min_p, prices[i]) max_p = max(max_p, prices[i] - min_p) return max_p
我的思路:
為了獲取最大的利潤,我們必須找到最低的價(jià)格,并用當(dāng)前日期的價(jià)格減去最低價(jià)格,獲得利潤。
這題也是動態(tài)規(guī)劃思路,最關(guān)鍵要找到最低價(jià)格是我們必須判斷的點(diǎn),接著判斷最大的利潤值,不斷進(jìn)行比對。
122. 買賣股票的最佳時(shí)機(jī) II
難度:簡單
給定一個(gè)數(shù)組,它的第 i 個(gè)元素是一支給定股票第 i 天的價(jià)格。
設(shè)計(jì)一個(gè)算法來計(jì)算你所能獲取的最大利潤。你可以盡可能地完成更多的交易(多次買賣一支股票)。
注意:你不能同時(shí)參與多筆交易(你必須在再次購買前出售掉之前的股票)。
我的題解:
class Solution(object): def maxProfit(self, prices): """ :type prices: List[int] :rtype: int """ profit = 0 for i in range(len(prices)-1): if prices[i+1] - prices[i] > 0: profit += prices[i+1] - prices[i] return profit
我的思路:
這題需要考慮到,
1.當(dāng)天賣出后可以當(dāng)天繼續(xù)買入;
2.為了買賣盡可能多次,當(dāng)后來日期的金額>買入日期的時(shí)候,即做賣出動作,獲取收益。
557. 反轉(zhuǎn)字符串中的單詞 III
難度:簡單
給定一個(gè)字符串,你需要反轉(zhuǎn)字符串中每個(gè)單詞的字符順序,同時(shí)仍保留空格和單詞的初始順序。
我的題解:
class Solution(object): def reverseWords(self, s): """ :type s: str :rtype: str """ l = s.split(" ") return " ".join(map(lambda x:x[::-1],l))
我的思路:
這題參考了評論里的方案,python似乎在字符串的處理上有先天的優(yōu)勢。
順便復(fù)習(xí)了下知識點(diǎn):
join 用于連接字符串 "-".join([a,b])
map map(函數(shù),需要處理的對象)
lambda表達(dá)式 匿名函數(shù),一目了然的輸入和輸出
[:]數(shù)組默認(rèn)參數(shù)為0和len-1,等于復(fù)制一份數(shù)組,即a[:]=a
[::-1] 當(dāng)步長小于0的時(shí)候,默認(rèn)缺省值為-1和len-1,即a[::-1] = a[len(a)-1:-1:-1],即逆序遍歷
231. 2的冪
難度:簡單
給定一個(gè)整數(shù),編寫一個(gè)函數(shù)來判斷它是否是 2 的冪次方
我的題解:
class Solution(object): def isPowerOfTwo(self, n): """ :type n: int :rtype: bool """ if n == 0: return False if n == 1: return True if n % 2 == 1: return False elif n == 2: return True else: return self.isPowerOfTwo(n/2)
我的思路:
這題用了非常暴力的方法,但是還是提交錯(cuò)了兩次,少判斷了為0和1的情況。
因?yàn)樽约簩懙倪f歸,就非常的開心...emmm遞歸棧有趣~
但是效率不太高
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43470.html
摘要:寫在前面今天沒有叨逼叨但是又一次錯(cuò)過了競賽愛睡覺的小李下周要上班,下下周一定要參加了握拳認(rèn)真做題的分割線第一題兩地調(diào)度公司計(jì)劃面試人。第人飛往市的費(fèi)用為,飛往市的費(fèi)用為。示例輸入輸出解釋第一個(gè)人去市,費(fèi)用為。 寫在前面 今天沒有叨逼叨...但是又一次錯(cuò)過了競賽...愛睡覺的小李...下周要上班,下下周一定要參加了(握拳 認(rèn)真做題的分割線 第一題 1029. 兩地調(diào)度公司計(jì)劃面試2N人。...
摘要:寫在前面今天的小李的目標(biāo)是排序算法,果然還是要下手寫才會更有體會,也更記得住。排序算法冒泡排序主要是比對相鄰兩個(gè)數(shù)之間的大小關(guān)系,不斷將較大值交換至最后。 寫在前面 今天的小李的目標(biāo)是排序算法,果然還是要下手寫才會更有體會,也更記得住。 認(rèn)真做題的分割線 第一題 215. 數(shù)組中的第K個(gè)最大元素難度:中等在未排序的數(shù)組中找到第k個(gè)最大的元素。請注意,你需要找的是數(shù)組排序后的第k個(gè)最大的...
摘要:第五題對稱二叉樹難度簡單給定一個(gè)二叉樹,檢查它是否是鏡像對稱的。第十六題最大連續(xù)的個(gè)數(shù)難度簡單給定一個(gè)二進(jìn)制數(shù)組,計(jì)算其中最大連續(xù)的個(gè)數(shù)。第十八題平方數(shù)之和難度簡單給定一個(gè)非負(fù)整數(shù),你要判斷是否存在兩個(gè)整數(shù)和,使得。 寫在前面 最近忙著調(diào)教新裝備,沒有及時(shí)的寫題解,但是沒有在偷懶沒刷題喔~來認(rèn)真整理下最近做的題目~ 之前考慮按tag來刷題,后來收到了推薦的leetcode題解,就根據(jù)上...
摘要:給定的字符串只含有小寫英文字母,并且長度不超過。其他這題了,要重做看了其他的人的題解,使用的是無限逼近中位值的辦法,理論基礎(chǔ)應(yīng)該是泰勒公式。萬萬沒想到居然用到了泰勒公式手工執(zhí)行了下算法,反而理解的更快,但是泰勒公式還得再復(fù)習(xí)下。 寫在前面的話 今天持續(xù)做題ing,python有意思~今天的題有點(diǎn)虐心...興許是我太笨了...會努力學(xué)習(xí)的!動態(tài)規(guī)劃我來啦~ 開始做題 第一題 459. 重...
摘要:認(rèn)真做題的分割線第一題乘積最大子序列難度中等給定一個(gè)整數(shù)數(shù)組,找出一個(gè)序列中乘積最大的連續(xù)子序列該序列至少包含一個(gè)數(shù)。 寫在前面的話 慢慢轉(zhuǎn)變思路,不再死磕不會做的題,思路可以先借鑒,但是一定要吃透透。上周末看完看完了《算法圖解》,感覺對一些題目的思路有比較大的幫助,但是還是要在實(shí)踐中理解。 認(rèn)真做題的分割線 第一題 152. 乘積最大子序列難度:中等給定一個(gè)整數(shù)數(shù)組nums,找出一個(gè)...
閱讀 1551·2021-11-25 09:43
閱讀 2332·2019-08-30 15:55
閱讀 1465·2019-08-30 13:08
閱讀 2666·2019-08-29 10:59
閱讀 810·2019-08-29 10:54
閱讀 1551·2019-08-26 18:26
閱讀 2546·2019-08-26 13:44
閱讀 2653·2019-08-23 18:36