第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...