力扣好數對數目和enumerate用法

2021-10-09 20:50:02 字數 1515 閱讀 4746

1.雜湊表

def

numidenticalpairs

(self, nums: list[

int])-

>

int:

sum=

0 m =[0

]*101for i in nums:

m[i]+=1

for i in m:

if i >1:

sum+=

(i *

(i -1)

)>>

1return

sum

(1)初始化列表:list = [none]*n (n為列表的大小) none也可寫為0。

(2)思路:用map表計數遍歷的資料出現的次數,對遍歷值大於1的進行排列組合(ci 2)

2.暴力兩層迴圈

def

numidenticalpairs

(self, nums: list[

int])-

>

int:

count =

0for i in

range(0

,len

(nums)-1

):for j in

range

(i+1

,len

(nums)):

if nums[i]

== nums[j]

: count = count +

1return count

3.遍歷函式enumerate用法

遍歷物件為: 字串、 列表 等

返回值是下標,預設從0開始,和對於列表

clist =[1

,2,3

,4]for i, j in

enumerate

(clist)

:print

(i, j)

011

2233

4

其中enumerate(list, n)中n是定義為索引的初始值

clist =[1

,2,3

,4]for i, j in

enumerate

(clist,1)

:print

(i, j)

112

2334

4

暴力迴圈:

return

sum(

[nums[inx+1:

].count(i)

for inx, i in

enumerate

(nums)

])

說明:首先inx為nums索引,從0開始,i為索引對應的值,nums[inx+1:]把nums利用切片定義乙個從inx+1開始到末尾的新列表,從中查詢和inx對應的i相同出現的次數。