算法:给你一个整数数组 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)

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

相关推荐
专吃海绵宝宝菠萝屋的派大星5 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
小李子呢02115 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
大数据新鸟5 小时前
操作系统之虚拟内存
java·服务器·网络
Tong Z5 小时前
常见的限流算法和实现原理
java·开发语言
凭君语未可5 小时前
Java 中的实现类是什么
java·开发语言
He少年5 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python
前端大波5 小时前
前端面试通关包(2026版,完整版)
前端·面试·职场和发展
克里斯蒂亚诺更新5 小时前
myeclipse的pojie
java·ide·myeclipse
迷藏4946 小时前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构
迷藏4946 小时前
**发散创新:基于Solid协议的Web3.0去中心化身份认证系统实战解析**在Web3.
java·python·web3·去中心化·区块链