Leetcode-3132 找出与数组相加的整数II
1. 题目描述
2. 解题思路
(1) 排序后,注意到nums1数组比nums2数组多两个元素,可推出最小匹配元素一定在nums[0]、nums[1]、nums[2]中出现;
(2) 优先从nums[2]进行判断是否符合,使用双指针的思想判断是否能够完全匹配(即nums2遍历完成)。
3. 代码实现
class Solution {
public:
int minimumAddedInteger(vector<int>& nums1, vector<int>& nums2) {
ranges::sort(nums1);
ranges::sort(nums2);
int n = nums1.size();
int m = nums2.size();
for (int i = 2; i > 0; i--) {
int x = nums2[0] - nums1[i];
// 双指针的思想,j指针指向nums1数组,k指针指向nums2数组
int j = i, k = 0;
while (j < n) {
// 相同的话继续向后匹配,同时判断是否能够完全匹配
if (nums1[j] + x == nums2[k] && ++k == m) {
return x;
}
j++;
}
}
return nums2[0] - nums1[0];
}
};
标签:nums,int,Leetcode,II,数组,3132,nums1,nums2,指针
From: https://blog.csdn.net/qewa132/article/details/141059065