代码拉取完成,页面将自动刷新
同步操作将从 doocs/leetcode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
给你两个整数数组 nums1
和 nums2
,请你实现一个支持下述两类查询的数据结构:
nums2
中指定下标对应元素上。nums1[i] + nums2[j]
等于指定值的下标对 (i, j)
数目(0 <= i < nums1.length
且 0 <= j < nums2.length
)。实现 FindSumPairs
类:
FindSumPairs(int[] nums1, int[] nums2)
使用整数数组 nums1
和 nums2
初始化 FindSumPairs
对象。void add(int index, int val)
将 val
加到 nums2[index]
上,即,执行 nums2[index] += val
。int count(int tot)
返回满足 nums1[i] + nums2[j] == tot
的下标对 (i, j)
数目。
示例:
,5,4
提示:
1 <= nums1.length <= 1000
1 <= nums2.length <= 105
1 <= nums1[i] <= 109
1 <= nums2[i] <= 105
0 <= index < nums2.length
1 <= val <= 105
1 <= tot <= 109
add
和 count
函数各 1000
次“哈希表”实现。
class FindSumPairs:
def __init__(self, nums1: List[int], nums2: List[int]):
self.nums1 = nums1
self.nums2 = nums2
self.counter = Counter(nums2)
def add(self, index: int, val: int) -> None:
old_val = self.nums2[index]
self.counter[old_val] -= 1
self.nums2[index] += val
self.counter[old_val + val] += 1
def count(self, tot: int) -> int:
return sum([self.counter[tot - num] for num in self.nums1])
# Your FindSumPairs object will be instantiated and called as such:
# obj = FindSumPairs(nums1, nums2)
# obj.add(index,val)
# param_2 = obj.count(tot)
class FindSumPairs {
private int[] nums1;
private int[] nums2;
private Map<Integer, Integer> counter;
public FindSumPairs(int[] nums1, int[] nums2) {
this.nums1 = nums1;
this.nums2 = nums2;
counter = new HashMap<>();
for (int num : nums2) {
counter.put(num, counter.getOrDefault(num, 0) + 1);
}
}
public void add(int index, int val) {
int oldVal = nums2[index];
counter.put(oldVal, counter.get(oldVal) - 1);
nums2[index] += val;
counter.put(oldVal + val, counter.getOrDefault(oldVal + val, 0) + 1);
}
public int count(int tot) {
int res = 0;
for (int num : nums1) {
res += counter.getOrDefault(tot - num, 0);
}
return res;
}
}
/**
* Your FindSumPairs object will be instantiated and called as such:
* FindSumPairs obj = new FindSumPairs(nums1, nums2);
* obj.add(index,val);
* int param_2 = obj.count(tot);
*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。