自我監督刷題記錄處3

2021-10-03 07:56:19 字數 2317 閱讀 2790

第3天。。決定先從基礎演算法分類做起,可能更有邏輯性?

(easy level)

class

solution

:def

strstr

(self, haystack:

str, needle:

str)

->

int:

len_h =

len(haystack)

len_n =

len(needle)

pointer =

0#特殊情況,所檢視的被包含物件為空,或包含物件小於被包含物件

if len_n ==

0: return

0if len_h == o or len_h < len_n:

return-1

#迴圈needle的長度次就可以判斷

while pointer <= len_h - len_n:

#分別對比被包含物件數字直到剩下其長度位置

if len_h[pointer]

== len_n[0]

:#如果首位一致,判斷後面的needle長中str是否一樣

iflen

[pointer:pointer + len_n)

== needle:

return pointer

else

:#後面str不一樣,指標右移

pointer +=

1else

:#首位不一樣,指標右移

pointer +=

1return

-1

(easy level)

class

solution

:def

maxprofit

(self, prices: list[

int])-

>

int:

profit =

0for i in

range(1

,len

(prices)):

#直接對比兩日**

if prices[i]

> prices[i-1]

:return profit += prices[i]

- prices[i-1]

return profit

貪心演算法很經典的一道題,稍微整理一下就可以變得很短

~(❤ ω ❤),今天真的偷懶了

(easy level)

#1.拼接

class

solution

:def

rotate

(self, nums: list[

int]

, k:

int)

->

none

: n =

len(nums)

k = k % n

nums[:]

= nums[

-k:]

+ nums[

:-k]

#2.插入

class

solution

:def

rotate

(self, nums: list[

int]

, k:

int)

->

none

: n =

len(nums)

k = k % n

for _ in

range

(k):

nums.insert(

0,nums.pop())

#3 切片

class

solution

:def

rotate

(self, nums: list[

int]

, k:

int)

->

none

: n =

len(nums)

k = k % n

nums[:]

= nums[::

-1] nums[

:k]= nums[

:k][::

-1] nums[k:

]= nums[k:][

::-1

]

三種方法差不多就夠了,曾經在面試的時候碰到過,雖然**很簡單,但題目是很經典的。屬於高頻題目

自我監督刷題記錄處1

第一篇日記,用於記錄刷題的每天程序,因為怕自己又堅持不下去,所以讓大家監督。每天3道題,希望能堅持下去。作為95後女程式媛?經驗不多,演算法不好,所以一直逃避刷題,但年齡到了還是要面對的?有經驗的大神們如果有更好的解法希望指導下!感恩感恩!easy level class solution def ...

自我監督刷題記錄處6

第6天。今天事情實在太多了,但還是要抽出一點時間來寫3道簡單題吧。whatever只要寫了就好,再堅持幾天吧,至少不會太搞笑t t。加個油吧。都加油吧。哎 easy level class solution def isanagram self,s str,t str bool result tru...

自我監督刷題記錄處7

finally,第7天,一周啦!值得鼓勵,努力,目標暫時定到兩周吧,到了再續吧。再續。每天一題活動準備正式參加,看日曆上的紅叉叉太難受了。easy level class solution def merge self,a list int m int,b list int n int none d...