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

力扣560.和为K的子数组

文章目录

  • 题目介绍
  • 题解

题目介绍

在这里插入图片描述

题解

前缀和+哈希表(两数之和):
在这里插入图片描述

代码如下:

class Solution {public int subarraySum(int[] nums, int k) {int n = nums.length;int[] s = new int[n + 1];for (int i = 0; i < n; i++) {s[i + 1] = s[i] + nums[i];}int res = 0;Map<Integer, Integer> map = new HashMap<>(n + 1); // 设置容量可以快 2msfor (int he : s) {res += map.getOrDefault(he - k, 0);map.put(he, map.getOrDefault(he, 0) + 1); // map[he]++}return res;}
}

错解:这种方法只适用于数组中所有元素都是正数的情况。 当数组中包含负数时,滑动窗口就不能保证正确性了。 例如,nums = [-1, -1, 1] 和 k = 0,你的算法会漏掉 [-1, -1, 1] 这个子数组。

class Solution {public int subarraySum(int[] nums, int k) {int res = 0, len = nums.length, l = 0, sum = 0;for (int r = 0; r < len; r++) {sum += nums[r];if (sum == k) {res++;}while (sum > k && l <= r) {sum -= nums[l++];if (sum == k) {res++;}}}return res;}
}
http://www.lryc.cn/news/2383617.html

相关文章:

  • MySQL——4、表的约束
  • 新浪、京东golang一面整理
  • Kotlin 协程 (二)
  • [250516] OpenAI 升级 ChatGPT:GPT-4.1 及 Mini 版上线!
  • 【完整版】基于laravel开发的开源交易所源码|BTC交易所/ETH交易所/交易所/交易平台/撮合交易引擎
  • Android Framework学习七:Handler、Looper、Message
  • MyBatis:简化数据库操作的持久层框架
  • 【001】RenPy打包安卓apk 流程源码级别分析
  • 物理信息神经网络(PINNs)在悬臂梁分析中的应用研究
  • 论文浅尝 | HOLMES:面向大语言模型多跳问答的超关系知识图谱方法(ACL2024)
  • npm、pnpm、yarn 各自优劣深度剖析
  • jenkins使用Send build artifacts over SSH发布jar包目录配置
  • uni-app小程序登录后…
  • 【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析
  • 【Leetcode】取余/2的幂次方
  • 解决Power BI Desktop导入Excel数据第一行不是列标题问题
  • springboot3.x只需两步快速整合nacos作配置中心
  • python如何遍历postgresql所有的用户表
  • c/c++的opencv高斯模糊
  • <uniapp><vuex><状态管理>在uniapp中,如何使用vuex实现数据共享与传递?
  • Java Stream流:高效数据处理的现代解决方案
  • 数据湖和数据仓库的区别
  • 【论文阅读 | AAAI 2025 | FD2-Net:用于红外 - 可见光目标检测的频率驱动特征分解网络】
  • 前端取经路——量子UI:响应式交互新范式
  • 计算机视觉与深度学习 | matlab实现EMD-VMD-LSTM时间序列预测(完整源码和数据)
  • 济南国网数字化培训班学习笔记-第三组-1-电力通信传输网认知
  • OAT 初始化时出错?问题可能出在 PAM 配置上|OceanBase 故障排查实践
  • 1-机器学习的基本概念
  • Hass-Panel - 开源智能家居控制面板
  • Ubuntu搭建NFS服务器的方法