看板 Marginalman 關於我們 聯絡資訊
先count所有數字 然後再maintain一個counter 每次的答案就看 左邊的num*2有幾個 乘上 右邊的num*2有幾個 只是0就要 多減1 這還真沒想到 def specialTriplets(self, nums: List[int]) -> int: all_cnt = Counter(nums) cur_cnt = defaultdict(int) rets = 0 mod = 10**9 + 7 for num in nums: if num==0: rets = (rets + (cur_cnt[num*2]*(all_cnt[num*2]-cur_cnt[num*2]- 1))) % mod else: rets = (rets + (cur_cnt[num*2]*(all_cnt[num*2]-cur_cnt[num*2]) )) % mod cur_cnt[num] += 1 return rets -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.58.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1765293756.A.4D3.html
caat0808: 你好擅長刷題呀 12/09 23:24
oin1104: 我好崇拜你 12/09 23:26
Che31128: 大師 12/09 23:28