【Leetcode刷题篇】leetcode560 和为K的子数组
发布日期:2021-06-29 15:35:09 浏览次数:3 分类:技术文章

本文共 691 字,大约阅读时间需要 2 分钟。

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。

示例 1 :

输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。

说明 :

数组的长度为 [1, 20,000]。
数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。

解法一、暴力解法来解题

public int subarraySum(int[] nums, int k) {
// 暴力解法 int res = 0 ; // 开始 for(int start=0;start
=0;end--) {
temp += nums[end]; if(temp==k) {
res += 1; } } } return res; }

解法二、通过hashmap和前缀和来解题

public int subarraySum_2(int[] nums, int k) {
// 前缀和+hashamp HashMap
hashMap = new HashMap<>(); int res = 0; int pre = 0; hashMap.put(0,1); // 开始 for(int i=0;i

转载地址:https://codingchaozhang.blog.csdn.net/article/details/111247689 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Leetcode刷题篇】leetcode75 颜色分类
下一篇:【Leetcode刷题篇】leetcode33 搜索旋转排序数组

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月13日 20时16分00秒