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相同出現的次數。