题目要求
一.好数对的数量
给你一个整数数组 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 开始
int ArrPairs(int nums[], int numsSize)
{
int count = 0;
for(int i=0;i<numsSize;i++)
{
for(int j=i+1;j<numsSize;j++)//遍历i后面所有的元素
{
if(nums[i] == nums[j])
{
count++;
}
}
}
return count;
}
int main()
{
int arr[] = {1,2,3,1,1,3};
int a = ArrPairs(arr,sizeof(arr)/sizeof(arr[0]));
printf("%d\n",a);
return 0;
}
二.一维数组前缀和
给你一个数组 nums 。数组「前缀和」的计算公式为:rtSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的前缀和
示例 1:
输入:nums = [1,2,3,4]
输出:[1,3,6,10]
解释:前缀和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。
void PreSum(int nums[], int numsSize)
{
int rtSum[100];//用来保存前缀和
rtSum[0] = nums[0];
for (int i = 1; i <= numsSize; i++)
{
rtSum[i] =rtSum[i-1]+ nums[i];
}
for (int i = 0; i < numsSize; i++)
{
printf("%d ", rtSum[i]);
}
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7 };
PreSum(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
注意:
- sizeof(arr) / sizeof(arr[0]); 该语句用来求arr数组的长度。前提是必须在定义数组的同一个函数中
- 数组在进行参数传递时,不仅需要传数组名,还需要传数组长度.