我是靠谱客的博主 整齐小白菜,最近开发中收集的这篇文章主要介绍前缀和+哈希---leetcode,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前缀和的基本概念

题目:560. 和为 K 的子数组

 考察S[R]-S[L-1]是否等于k,哈希表的作用可以快速插入一个数、可以快速找到一个数、可以统计数出现的次数。

以下为Java代码:

class Solution {
    public int subarraySum(int[] nums, int k) {
        int result = 0;
		int sum = 0;  //表示前缀和
		Map<Integer,Integer> map = new HashMap<>();
        map.put(0,1);  //S[R]-S[L-1] 边界条件
		for(int i=0;i<nums.length;i++) {
			sum+=nums[i];
			if(map.containsKey(sum-k)) {
				result += map.get(sum-k);
			}
			if(map.containsKey(sum)) {
				int value = map.get(sum);
				map.put(sum,++value);
			} else {
				map.put(sum, 1);
			}
		}
		return result;
    }
}

最后

以上就是整齐小白菜为你收集整理的前缀和+哈希---leetcode的全部内容,希望文章能够帮你解决前缀和+哈希---leetcode所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部