题目要求:
给你一个整数数组 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
诶嘿嘿,这个一开始就自己敲了哦~ 小开心~~
但是还是有好多困难,虽然真的好简单一问题,害,自己挖的坑哭着也得补上…
先附上我敲的代码吧~
class Solution {
public:
int numIdenticalPairs(vector<int>& nums) {
int numslength = nums.size();
int numscount = 0;
for(int m=0; m<numslength; m++)
{
int i = nums[m];
for(int n=m+1; n<numslength; n++)
{
int j = nums[n];
if(i==j)
{numscount++;}
}
}
return numscount;
}
};
①计算数组中元素个数
(叉手手,想了一会咋计算数组元素个数,然后突然想起只能循环,后来发现是输出数组中元素的时候只能循环输出)
查到了:
1、
numslength = nums.size()
2、这个不知道为啥执行出错???
int len = sizeof(a)/sizeof(a[0]);
②题目理解
又迷糊了,哈哈哈,题目说两数相等且 i < j;我直接就 i < j 了,没有错误但是结果不对,后来再审题就发现啦!然后第二个循环里直接开始的数是外层加一就OK啦~
for(int n=m+1; n<numslength; n++)
{
int j = nums[n];
if(i==j)
{numscount++;}
}
③
int numIdenticalPairs(vector<int>& nums)
小括号里的也不知道是啥,容我问问大佬再来补充…