2023年10月3日 星期二

10/2 每日一題(找出NUMS 中的好對,符合nums[i]==nums[j] & i < j)

Given an array of integers nums, return the number of good pairs.

A pair (i, j) is called good if nums[i] == nums[j] and i < j.

 

Example 1:

Input: nums = [1,2,3,1,1,3]
Output: 4
Explanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.

Example 2:

Input: nums = [1,1,1,1]
Output: 6
Explanation: Each pair in the array are good.

Example 3:

Input: nums = [1,2,3]
Output: 0

 

Constraints:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

 

class Solution:
    def numIdenticalPairs(self, nums: List[int]) -> int:
        'n*(n-1)/2'
        nums_dict=Counter(nums)
        res=0
        for k, v in nums_dict.items():
            if v > 1:
                n= v*(v-1)//2
                res += n
        return res

       


----------參考


class Solution:
    def numIdenticalPairs(self, nums: List[int]) -> int:
        Count = 0
        for i in range(len(nums)):
            Counter = nums[i+1:].count(nums[i])
            Count += Counter
        return Count


---------------參考

from typing import List
class Solution:
    def numIdenticalPairs(self, nums: List[int]) -> int:

        diktator = {}
        ans = 0

        for i, num in enumerate(nums):
            if num not in diktator:
                diktator[num] = 0
            else:
                diktator[num] += 1
                ans += diktator[num]

        return ans


標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁