凤翔网站建设,wordpress 离线编辑器,南宁网站建设加王道下拉,能上国外网站的dns题干描述
给你两个长度相等的数组 nums1 和 nums2。
数组 nums1 中的每个元素都与变量 x 所表示的整数相加。如果 x 为负数#xff0c;则表现为元素值的减少。
在与 x 相加后#xff0c;nums1 和 nums2 相等 。当两个数组中包含相同的整数#xff0c;并且这些整数出现的频…题干描述
给你两个长度相等的数组 nums1 和 nums2。
数组 nums1 中的每个元素都与变量 x 所表示的整数相加。如果 x 为负数则表现为元素值的减少。
在与 x 相加后nums1 和 nums2 相等 。当两个数组中包含相同的整数并且这些整数出现的频次相同时两个数组 相等 。
返回整数 x 。 示例 1:
输入nums1 [2,6,4], nums2 [9,7,5]
输出3
解释
与 3 相加后nums1 和 nums2 相等。
示例 2:
输入nums1 [10], nums2 [5]
输出-5
解释
与 -5 相加后nums1 和 nums2 相等。
示例 3:
输入nums1 [1,1,1,1], nums2 [1,1,1,1]
输出0
解释
与 0 相加后nums1 和 nums2 相等。
题干分析
输入与目标
我们有两个等长数组nums1和nums2。需要找到一个 整数x使得nums1[i]xnums2[i]对于每个i成立。这以为着我们需要调整nums1中每个元素使其nums2对应元素相等。
思路分析
如果我们对nums1中的每个元素都加上相同的x使得它们与nums2对应元素相等意味着nums2[i]-nums1[i] x。因为nums1和nums2相等时相同元素的出现次数也应该一致所以x可以是任意一个nums2[i]-nums1[i]。由于题目没有给出明确条件所以可以通过简单计算差值来找到x。
代码思路解释
首先找到nums1和nums2的最大值。因为我们需要加上一个整数使数组计算这两个最大值的差值即可得到x。代码中maxVal1和maxVal2分别计算nums1和nums2的最大值。最终返回maxVal2-maxVal1作为结果。
完整代码如下
#include stdio.h//定一个函数用于计算两个数组nums1和nums2需要加的整数x使它们相等
int addedInteger(int* nums1, int nums1Size, int* nums2, int nums2Size) {int maxVal1 0, maxVal2 0;for (int i 0; i nums1Size; i){maxVal1 (maxVal1 nums1[i]) ? maxVal1 : nums1[i]; // 计算 nums1 的最大值}for (int i 0; i nums2Size; i){maxVal2 (maxVal2 nums2[i]) ? maxVal2 : nums2[i];//计算nums2的最大值}return maxVal2 - maxVal1;
}
int main() {int nums1[] { 1, 2, 3 };int nums2[] { 4, 5, 6 };int size sizeof(nums1) / sizeof(nums1[0]);int result addedInteger(nums1, size, nums2, size);printf(The integer x is: %d\n, result);return 0;
}