原题链接

题目描述

实现 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) 数目。

思路

难点是实现count()方法,直接用两层for循环遍历nums1 和 nums2是会超时的。
这里可以引用一个map,用来存储nums2的元素出现的频率,
这样只需要遍历一次nums1,即可查看nums2中是否有值等于tot-map.get(nums1[i]),
最终得出总数。

参考代码

class FindSumPairs {int num1[];int num2[];Map<Integer, Integer> map = new HashMap<>();public FindSumPairs(int[] num1, int[] num2) {this.num1 = num1;this.num2 = num2;for (int i : num2) {map.put(i, map.getOrDefault(i, 0) + 1);}}public void add(int index, int val) {map.put(num2[index], map.get(num2[index]) - 1);num2[index] += val;map.put(num2[index], map.getOrDefault(num2[index], 0) + 1);}public int count(int tot) {int count = 0;for (int i : num1) {count += map.getOrDefault(tot - i, 0);}return count;}
}

【LC周赛241】1865. 找出和为指定值的下标对相关推荐

  1. LeetCode 1865. 找出和为指定值的下标对(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 给你两个整数数组 nums1 和 nums2 ,请你实现一个支持下述两类查询的数据结构: 累加 ,将一个正整数加到 nums2 中指定下标对应元素上. 计 ...

  2. 【算法】从一组数中找出和为指定值的任意组合

    题目:给定的一组整数,给定一个值X,找出和为X的任意组合. 思路:将X视为重量x(kg)的物品,放在天平左侧,数组中的每个数字视为重量为y(kg)的砝码,砝码从大到小逐一放置,直到天平平衡,那么选择的 ...

  3. 【c语言】在一个一维整数组中找出其中最大的数及其下标

    //在一个一维整型数组中找出其中最大的数及其下标 #include <stdio.h> #define N 10 int fun(int* a, int* b, int n) {int* ...

  4. javascript 几句话快速找出字符串内指定字符的下标。

    今天在和朋友讨论如何快速找出字符串内指定字符的下标 于是就出现了下面的写法: 写法1 var str ="this is javascript" var resault ={ind ...

  5. 找出数组中其中最大的数及其下标

    1.在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标. 代码如下: public static void main(String[] args) {int ...

  6. Java黑皮书课后题第6章:**6.29(双素数)双素数是指一对差值为2的素数。例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数。编写程序,找出小于1000的所有双素数

    6.29(双素数)双素数是指一对差值为2的素数.例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数.编写程序,找出小于1000的所有双素数 题目 题目描述 破题 代码 运行示例 ...

  7. 算法:找出1-10000之间的所有素数

    用试除法 找出1-10000之间的所有素数 若要判断数字n是否为素数,只需将区间 [2,sqrt(n)] 之间的所有整数对数字j进行试除即可. #include <stdio.h> #in ...

  8. 『力扣刷题』5275_找出井字棋的获胜者 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5275_找出井字棋的获胜者 * 5275. 找出井字棋的获胜者 显示英文描述* 用户通过次数0* 用户尝试次数0* ...

  9. n个整数,找出连续的m个数加和是最大

    /*** n个整数,找出连续的m个数加和是最大.*/public static void main(String[] args) {int n = 5;//n个整数可以自定义int[] datas = ...

最新文章

  1. RN中布局样式的写法
  2. 【超级大转载】常用的D3D变换相关函数
  3. Referenced file contains errors (http://www.springframework.org/schema...错误--转载
  4. BOOST_VMD_ASSERT_IS_ARRAY宏相关的测试程序
  5. python数据包pandas_python_pandas学习
  6. java面试题_阿里大厂流出的数百道 Java 经典面试题
  7. 详解--单调队列 经典滑动窗口问题
  8. ftp邮箱里的文件无法连接服务器,服务器FTP不能连接的一些解决方法 - 新网数据 - 主机,域名,邮箱提供商 - www.nIDC.cn...
  9. 准备离职,工作的一些细节记录
  10. mysql 分库分表中间件 mycat_阿里开源的分布式分库分表中间件之MyCat从入门到放弃...
  11. 使用类名称创建实例并调用构造函数
  12. P1681 最大正方形II (动态规划)
  13. Vue使用Axios实现http请求以及解决跨域问题
  14. 学习笔记(11):ArcGIS10.X入门实战视频教程(GIS思维)-快速制作一幅土地利用现状图(引入制图表达)
  15. 滤波器原理及其作用计算机网络,数字滤波器
  16. Delphi Android menu,Delphi菜单组件TMainMenu使用方法详解
  17. 利用excel生成word并在其中批量插入图片和题注、文字描述等内容
  18. oracle函数 isex,求一条sql话语,按条件查询过期的客户信息
  19. Symbian手记【一】 —— Symbian命名法
  20. GDI+ 中图片的绘制

热门文章

  1. Warning: L6305W: Image does not have an entry point. (Not specified or not set due to multi
  2. 如何通过Shell脚本,批量配置路由器或交换机配置
  3. 黑客入侵 应用程序无法启动_被黑客入侵如何启动我的网络安全职业
  4. 华为机试训练做题总结(三)
  5. MediaPlayer播放视频
  6. 局域网语音对讲系统_高速公路隧道电话广播一体调度系统解决方案
  7. 华为1+X网络系统建设与运维(中级)——VRRP
  8. moba寻路_GitHub - ylmbtm/MoBaDemo: 用Unity做的一个类Moba游戏Demo
  9. Java阿里巴巴开发手册与JDK1.8API中文版下载
  10. 英语学习-that和which区别