前端力扣刷题 | 4:hot100之 子串

news/2025/2/1 19:15:05 标签: 前端, leetcode, 算法

560. 和为K的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。

子数组是数组中元素的连续非空序列。

示例:

输入:nums = [1,1,1], k = 2
输出:2

法一:暴力法
var subarraySum = function(nums, k) {
    let res = 0;
    for(let i=0;i<nums.length;i++){
        let sum = 0;
        for(let j = i;j>=0;j--){
            sum+=nums[j];
            if(sum===k){
                res++;
            }
        }
    }
    return res;
};
法二:前缀和+哈希表
  • 使用前缀和存储累计值,利用 currentSum - k 快速找到满足条件的子数组。
function subarraySum(nums, k) {
    // 初始化前缀和计数器
    const prefixSumCount = new Map();
    prefixSumCount.set(0, 1); // 初始前缀和为0,出现次数为1
    let currentSum = 0;
    let result = 0;

    for (const num of nums) {
        // 更新当前前缀和
        currentSum += num;

        // 检查是否存在满足条件的前缀和
        if (prefixSumCount.has(currentSum - k)) {
            result += prefixSumCount.get(currentSum - k);
        }

        // 更新前缀和计数器
        prefixSumCount.set(
            currentSum,
            (prefixSumCount.get(currentSum) || 0) + 1
        );
    }
    return result;
}

http://www.niftyadmin.cn/n/5839528.html

相关文章

android安卓用Rime

之前 [1] 在 iOS 配置用上自改方案 [2]&#xff0c;现想在安卓也用上。Rime 主页推荐了两个安卓平台支持 rime 的输入法 [3]&#xff1a; 同文 Tongwen Rime Input Method Editor&#xff0c;但在我的 Realme X2 Pro 上似乎有 bug&#xff1a;弹出的虚拟键盘只有几个 switcher…

2.1.2 Bayer阵列与去马赛克

文章目录 Bayer阵列去马赛克方法 Bayer阵列 由于传感器只能感受到光的强度&#xff0c;而无法感知颜色&#xff0c;所以需要用红、绿、蓝颜色的滤光片将光中的R、G、B亮度滤出&#xff0c;再通过R、G、B的组合得到各种色彩。Bayer阵列是使用一个传感器获得彩色图像的方法&#…

讯飞星火大模型API使用Python调用

本文仅仅为简单API调用&#xff0c;更多复杂使用方法请参见接口文档 先在科大讯飞开放平台注册账号&#xff0c;点击控制台&#xff0c;在我的应用中创建新应用&#xff0c;新应用的名称可以自定义&#xff0c;这里我写的是ai对话&#xff1a; 在这里我们使用的模型为Speak Ul…

deepseek+vscode自动化测试脚本生成

近几日Deepseek大火,我这里也尝试了一下,确实很强。而目前vscode的AI toolkit插件也已经集成了deepseek R1,这里就介绍下在vscode中利用deepseek帮助我们完成自动化测试脚本的实践分享 安装AI ToolKit并启用Deepseek 微软官方提供了一个针对AI辅助的插件,也就是 AI Toolk…

Qt事件处理:理解处理器、过滤器与事件系统

1. 事件 事件 是一个描述应用程序中、发生的某些事情的对象。 在 Qt 中&#xff0c;所有事件都继承自 QEvent &#xff0c;并且每个事件都有特定的标识符&#xff0c;如&#xff1a;Qt::MouseButtonPress 代表鼠标按下事件。 每个事件对象包含该事件的所有相关信息&#xff…

学习数据结构(5)单向链表的实现

&#xff08;1&#xff09;头部插入 &#xff08;2&#xff09;尾部删除 &#xff08;3&#xff09;头部删除 &#xff08;4&#xff09;查找 &#xff08;5&#xff09;在指定位置之前插入节点 &#xff08;6&#xff09;在指定位置之后插入节点 &#xff08;7&#xff09;删除…

Linux stat 命令使用详解

简介 stat 命令打印文件和文件系统的详细信息。该工具提供有关所有者是谁、修改日期、访问权限、大小、类型等信息。 该实用程序对于故障排除、在更改文件之前获取有关文件的信息以及例行文件和系统管理任务至关重要。 基本语法 stat [arguments] [filename]常用选项 -L, -…

158页精品PPT | 机械行业数字化生产供应链产品解决方案

《机械行业数字化生产供应链产品解决方案》是一套全面且深入的数字化转型方案&#xff0c;旨在通过先进的信息技术和管理理念&#xff0c;助力机械行业企业实现从传统制造到智能制造的升级。该方案涵盖了从生产管理、研发设计到供应链协同的全流程优化&#xff0c;通过用友U8精…