LeetCode 简单题分享(13)

好数对的数目

题目:

LeetCode 简单题分享(13)_第1张图片 

 

这是一道简单题,所以一开始我就用的最简单的思路来进行,双重for循环遍历,然后比较得到答案,暴力但是有效。

代码如下:

   public static int numIdenticalPairs(int[] nums) {
        int counter =0;
        for (int i = 0; i 

leetcode执行结果:

LeetCode 简单题分享(13)_第2张图片

显然结果不是令人满意的

所以分析题目,这道题虽然说的是好数对,但是仔细看来,实际上就是判断数值是否相等。因为我们循环遍历本来就是一个从前往后的过程,所以这道题目,我们就可以化简为:统计相等的数对,如果有两个相等的数对,那么计数器+1.

代码如下:

    public int numIdenticalPairs2(int[] nums) {
        int ans = 0;
        
        // arr.length<=100
        int[] temp = new int[100];
        
        //遍历数组
        for (int num : nums) {
            ans += temp[num - 1]++;
        }

        return ans;
    }

leetcode执行结果:

LeetCode 简单题分享(13)_第3张图片

 

你可能感兴趣的:(leetcode,java,leetcode,算法)