当前位置: 首页 > news >正文

560. 和为 K 的子数组

刷题找工作!


题目链接

. - 力扣(LeetCode)


自己的思路

我没思路(哭)。

模拟面试的时候遇到这个题,很熟悉,但是做不出来(哭)。

我用滑动窗口做的,但是我个人觉得很不合理,因为左右滑的条件找不到。

后面看了题解,大致思路猜测是用前缀和与map。

开干。


官方题解

思路是对的,但我做不出。

class Solution {public int subarraySum(int[] nums, int k) {int count = 0, pre = 0;HashMap<Integer, Integer> mp = new HashMap<>();mp.put(0, 1);//用put放,为什么放(0, 1)for(int i = 0 ; i < nums.length; i++){pre += nums[i];if(mp.containsKey(pre - k)){//哇哦天才,直接看是否有已经存在的前缀和使我们的值为kcount += mp.get(pre - k);//存在, 所以把所有能这样的前缀和都加起来}//getOrDefault是如果不存在则创建, 括号里写的是创建的默认数据mp.put(pre, mp.getOrDefault(pre, 0) + 1);//将这个前缀和放入}return count;}
}

妙啊。


http://www.mrgr.cn/news/29069.html

相关文章:

  • Maya---机械模型制作
  • vs2022快捷键异常解决办法
  • 《Google软件测试之道》笔记
  • 大厂校招:唯品会Java面试题及参考答案
  • 力扣题解815
  • 星火AI-智能PPT生成 API 文档
  • Python 课程15-PyTorch
  • SAP到底是谁的系统?business or IT?
  • IDEA 2024.3 EAP新特征早览!
  • 电脑的固态硬盘
  • 53 最大子数组和
  • 【FreeRL】Rainbow_DQN的实现和测试
  • AI教你学Python :详解Python元组与集合、字典基础和字符串操作(补充)
  • 学成在线练习(HTML+CSS)
  • Spring 源码解读:手动实现Environment抽象与配置属性
  • 【前端】prop传值的用法
  • 等保测评:企业如何选择合适的测评机构
  • Vue特性
  • C++11新增特性:lambda表达式、function包装器、bind绑定
  • Python 爬虫入门 - Request 静态页面数据获取