当前位置: 首页 > news >正文

电子商务网站建设与管理学习心得网站排名优化公司哪家好

电子商务网站建设与管理学习心得,网站排名优化公司哪家好,优秀网站设计,乐陵森源木业全屋定制题目 输入一个整数数组和一个整数k,请问数组中有多少个数字之和等于k的连续子数组?例如,输入数组[1,1,1],k的值为2,有2个连续子数组之和等于2。 分析 在从头到尾逐个扫描数组中的数字时求出前…

题目

输入一个整数数组和一个整数k,请问数组中有多少个数字之和等于k的连续子数组?例如,输入数组[1,1,1],k的值为2,有2个连续子数组之和等于2。

分析

在从头到尾逐个扫描数组中的数字时求出前i个数字之和,并且将和保存下来。数组的前i个数字之和记为x。如果存在一个j(j<i),数组的前j个数字之和为x-k,那么数组中从第i+1个数字开始到第j个数字结束的子数组之和为k。
这个题目需要计算和为k的子数组的个数。当扫描到数组的第i个数字并求得前i个数字之和是x时,需要知道在i之前存在多少个j并且前j个数字之和等于x-k。所以,对每个i,不但要保存前i个数字之和,还要保存每个和出现的次数。分析到这里就会知道我们需要一个哈希表,哈希表的键是前i个数字之和,值为每个和出现的次数。

public class Test {public static void main(String[] args) {int[] nums = {1, 1, 1};int result = subarraySum(nums, 2);System.out.println(result);}public static int subarraySum(int[] nums, int k) {Map<Integer, Integer> sumToCount = new HashMap<>();sumToCount.put(0, 1);// 和为零(就是数组为空的时候)的个数有1个int sum = 0;int count = 0;for (int num : nums) {sum += num;count += sumToCount.getOrDefault(sum - k, 0);// 获取和为(sum - k)的个数sumToCount.put(sum, sumToCount.getOrDefault(sum, 0) + 1);// 设置和为sum的个数}return count;}
}
http://www.hrbkazy.com/news/3399.html

相关文章:

  • 软件定制开发外包搜索引擎优化工作
  • aspnet动态网站开发考试江苏网络推广公司
  • 蒙阴建设局网站沈阳全网推广公司哪家好
  • 做go kegg的在线网站百度的广告
  • 网站收录很高站长工具seo综合查询收费吗
  • 专业做京东网站吗少儿培训
  • 商城 小程序沈阳seo合作
  • 公司网站建站软件seo详细教程
  • 网站屏蔽省份微信软文推广怎么做
  • 在线教育网站建设公司站长之家新网址
  • 云虚拟主机发布wordpressseo经验是什么
  • 新手怎么学做网站深圳优化公司义高粱seo
  • 怎么做网站后期维护网站网络排名优化方法
  • 网站备案信息真实性核验单流程软文推广的好处
  • 石家庄兼职做网站seo顾问服务 品达优化
  • 基层建设是哪个网站的seo网络优化教程
  • 遵义企业做网站百度营销网页版
  • 怎么看一个网站是否被k竞价外包推广
  • 免费做问卷的网站泰州seo网站推广
  • 东山网站建设中国唯一没有疫情的地方
  • 办公空间设计思路自建站seo如何做
  • 广东建设人才网站重庆百度seo代理
  • 免费做计算机题的网站今日热点新闻排行榜
  • 公司官网登录入口梁水才seo优化专家
  • 正品率最高的购物网站seo推广价格
  • 漯河做网站xknt世界新闻
  • 做网站的大创结项网络推广哪家做得比较好
  • 天津网站建设zmad免费发帖推广平台有哪些
  • 一站式网站建设行业新航道培训机构怎么样
  • 做个个人网站要怎么做百度知道登录