【LeetCode】930. 和相同的二元子数组

930. 和相同的二元子数组

知识点:数组;前缀和;

题目描述

给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。
子数组 是数组的一段连续部分。

示例
输入:nums = [1,0,1,0,1], goal = 2 输出:4 解释: 4 个满足题目要求的子数组:[1,0,1]、[1,0,1,0]、[0,1,0,1]、[1,0,1] 输入:nums = [0,0,0,0,0], goal = 0 输出:15。

解法一:前缀和

连续子数组+和 --> 前缀和;

class Solution { public int numSubarraysWithSum(int[] nums, int goal) { Map<Integer,Integer> map = new HashMap<>(); int presum = 0; int count = 0; map.put(0,1); for(int i = 0; i < nums.length; i++){ presum += nums[i]; if(map.containsKey(presum-goal)) count += map.get(presum-goal); map.put(presum, map.getOrDefault(presum, 0)+1); } return count; } }

时间复杂度:0(N);

体会

连续子数组+和 --> 前缀和


__EOF__

本文作者Curryxin
本文链接https://www.cnblogs.com/Curryxin/p/15022942.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Curryxin  阅读(93)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『【LeetCode】930. 和相同的二元子数组』
点击右上角即可分享
微信分享提示