Re: [閒聊] 每日leetcode
昨天的
題目:
有一個array叫nums裡面有很多數字
我們要找裡面有幾對符合i<j且nums[j]-nums[i]!=j-i
思路:
先去算有幾對符合nums[j]-nums[i]!=j-i
再用全部去扣
nums[j]-nums[i]=j-i移項可以變成nums[j]-j=nums[i]-i
所以可以先把nums每項都先改成nums[i]-i
再去統計每個數字出現的頻率
假設一個數字出現k次
因為要k個找兩個做組合所以就有k*(k-1)/2對
每一項加起來再用全部去扣就是答案了
Code:
def countBadPairs(self, nums):
for i in range(len(nums)):
nums[i]-=i
dict={}
total=len(nums)*(len(nums)-1)//2
for i in nums:
if i not in dict:
dict[i]=1
else:
dict[i]+=1
for i in dict:
total-=dict[i]*(dict[i]-1)//2
return total
坐火車很無聊
看不到今天的題目
用昨天的先水一篇
對阿
--
https://i.imgur.com/P179G56.jpeg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.53.152.67 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1739150517.A.16E.html
→
02/10 09:23,
10月前
, 1F
02/10 09:23, 1F
討論串 (同標題文章)
完整討論串 (本文為第 1332 之 1552 篇):