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

Java面试题目录

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

使用前缀和来实现。在保存累加和的数组preSum中,找坐标大的元素与坐标小的元素差值正好为k的个数。

leecode地址:. - 力扣(LeetCode)

直接在力扣找了个写好的答案。

java 复制代码
public class Solution {

    public int subarraySum(int[] nums, int k) {
        int len = nums.length;
        // 计算前缀和数组
        int[] preSum = new int[len + 1];
        preSum[0] = 0;
        for (int i = 0; i < len; i++) {
            preSum[i + 1] = preSum[i] + nums[i];
        }

        int count = 0;
        for (int left = 0; left < len; left++) {
            for (int right = left; right < len; right++) {
                // 区间和 [left..right],注意下标偏移
                if (preSum[right + 1] - preSum[left] == k) {
                    count++;
                }
            }
        }
        return count;
    }
}

作者:liweiwei1419

链接:https://leetcode.cn/problems/subarray-sum-equals-k/solutions/247577/bao-li-jie-fa-qian-zhui-he-qian-zhui-he-you-hua-ja/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关推荐
weisian1517 小时前
进阶篇-LangChain篇-15--高级Agent架构—复杂任务拆解(Plan-and-Execute架构)和多智能体协作(LangGraph)
java·架构·langchain·langgraph·planexecute架构
Chase_______7 小时前
LeetCode 643:子数组最大平均数 I
算法·leetcode
凤年徐7 小时前
自动化构建工具:make 与 Makefile
android·java·linux·自动化
Xiu Yan7 小时前
Java 转 C++ 系列:STL常用函数
java·开发语言·c++·stl·visual studio
.ZGR.7 小时前
【全栈实战】搭建属于你的AI图像生成平台:从Java Swing 到 Web 应用
java·人工智能·node.js
:1217 小时前
java面试基础
java·开发语言
笨笨饿7 小时前
#65_反激电源
stm32·单片机·嵌入式硬件·算法·硬件工程·个人开发
_Evan_Yao7 小时前
软件工程就是一场“抽象”游戏:从 abstract 关键字到架构设计的认知跃迁
java·后端·游戏·状态模式·软件工程
艾莉丝努力练剑7 小时前
【Linux线程】Linux系统多线程(十):线程安全和重入、死锁相关话题
java·linux·运维·服务器·c++·学习·安全
wengqidaifeng7 小时前
数据结构:排序(下)---进阶排序算法详解
数据结构·算法·排序算法