如何修复 leetcode 中的以下错误?

How Can I fix the following Error in leetcode?

对于问题: 给定一个整数数组 nums,return 好对的数量。

如果 nums[i] == nums[j] 且 i < j,则称一对 (i, j) 是好的。

我写了下面的代码:

 int numIdenticalPairs(vector<int>& nums) {
   
 int count[102];

for (int num : nums) {
  count[num]++;
}

int totalCount = 0;

// Calculate total number of pairs possible
for (int i : count) {
  totalCount += ((i) * (i-1))/2;
}

return totalCount;

}

我收到以下错误,请帮助我修复它:

Line 21: Char 26: runtime error: signed integer overflow: -1844207608 * -1844207609 cannot be represented in type 'int' (solution.cpp) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:30:26

对于这类题,你也需要给出约束条件。不过,我正在根据自己的经验进行尝试。

在 C++ 中,您在 function/method 中声明的没有 malloc 或 new 的数组将进入堆栈并在您不放置任何内容时保留垃圾值。所以,你需要先初始化它。这样做:

memset(count, 0, sizeof(count));

因为我在这里没有看到任何限制,如果 count[] 的值甚至接近 10^5,您将在 的乘法中得到整数溢出i x (i-1) 也是。所以试试这个:

for (int i : count) {
    totalCount += ((i) * ((long long)(i-1)))/2;
}

希望这些能解决问题。

编辑: 现在我将 Java 用于 problem-solving。所以语法上可能有一些错误。