给你一个整数数组 nums 。


如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。


返回好数对的数目。



示例 1:


输入:nums = [1,2,3,1,1,3]

输出:4

解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始

示例 2:


输入:nums = [1,1,1,1]

输出:6

解释:数组中的每组数字都是好数对

示例 3:


输入:nums = [1,2,3]

输出:0


提示:


1 <= nums.length <= 100

1 <= nums[i] <= 100


来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/number-of-good-pairs

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

package cn.fansunion.leecode.isNumber;

/**

* 1512. 好数对的数目

* 给你一个整数数组 nums 。

如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。

返回好数对的数目。

来源:力扣(LeetCode)

链接:力扣

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

* @author wen.lei@brgroup.com

*

* 2022-2-19

*/

public class NumberOfGoodPairs {

/* 示例 1:



输入:nums = [1,2,3,1,1,3]

输出:4

解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始

示例 2:



输入:nums = [1,1,1,1]

输出:6

解释:数组中的每组数字都是好数对

示例 3:



输入:nums = [1,2,3]

输出:0





提示:



1 <= nums.length <= 100

1 <= nums[i] <= 100*/

/**

* 暴力破解(穷举)

* @param nums

* @return

*/

public int numIdenticalPairs(int[] nums) {

int count=0;

for(int i=0;i<nums.length;i++) {

for(int j=1;j<nums.length;j++) {

//i<j 不能少

if(nums[i]==nums[j] && i < j) {

count++;

}

}

}

return count;

}

}
package test.leecode.isNumber;

import org.junit.Assert;

import org.junit.Test;

import cn.fansunion.leecode.isNumber.NumberOfGoodPairs;

/**

* @author wen.lei@brgroup.com

*

* 2022-2-21

*/

public class NumberOfGoodPairsTest {

@Test

public void test() {

NumberOfGoodPairs pair = new NumberOfGoodPairs();

Assert.assertEquals(4,pair.numIdenticalPairs(new int[] {1,2,3,1,1,3}));

Assert.assertEquals(6,pair.numIdenticalPairs(new int[] {1,1,1,1}));

Assert.assertEquals(0,pair.numIdenticalPairs(new int[] {1,2,3}));

Assert.assertEquals(1,pair.numIdenticalPairs(new int[] {1,2,2}));

}

}