3131. 找出与数组相加的整数 I
题目描述:
给你两个长度相等的数组 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` 相等。
提示:
1 <= nums1.length == nums2.length <= 100
0 <= nums1[i], nums2[i] <= 1000
- 测试用例以这样的方式生成:存在一个整数
x
,使得nums1
中的每个元素都与x
相加后,nums1
与nums2
相等。
解题分析及思路:
方法:一次遍历
思路:
通过遍历,找到两个数组的最大值或者最小值,其差值即为结果
func addedInteger(nums1 []int, nums2 []int) int {
var max1, max2 int = nums1[0], nums2[0]
for i := 1; i < len(nums1); i++ {
max1 = max(max1, nums1[i])
}
for i := 1; i < len(nums2); i++ {
max2 = max(max2, nums2[i])
}
return max2 - max1
}
func max(num1, num2 int) int {
if num1 > num2 {
return num1
}
return num2
}
复杂度:
- 时间复杂度:O(n)
- 空间复杂度:O(1)
执行结果:
- 执行耗时:5 ms,击败了31.00% 的Go用户
- 内存消耗:2.8 MB,击败了99.00% 的Go用户
Tags :
通过次数 27.7K 提交次数 33.3K 通过率 83.2%