当前位置: 首页 > 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.hengruixuexiao.com/news/48072.html

相关文章:

  • 做网站拉广告厦门人才网
  • 点击app图标进入网站怎么做百度人工客服电话
  • 跨境电商哪个平台最好什么是seo优化?
  • 三合一网站建设百度知道官网登录入口
  • 网站开发软文免费发布广告
  • 哪个做网站好今日国际新闻大事
  • 建筑工程公司简介范文吉林seo关键词
  • 网站开发java好还是php好网站统计代码
  • 服务器出租网站百度seo排名优化公司哪家好
  • 下模板做网站seo国外推广软件
  • 国外素材网站人工智能培训班
  • 邯郸网站优化怎么做网络营销网站设计
  • 河南省住房与城乡建设厅网站网站建设的公司
  • 企业进行网站建设的重要意义免费的关键词优化工具
  • 如何修改网站的关键词手机系统优化软件哪个好
  • 大同网站建设哪里好百度seo规则
  • 站长推荐网站百度问答我要提问
  • 桥头镇网站建设公司网络公司排行榜
  • wordpress自动登录ftp贵阳关键词优化平台
  • 做百度网站要注意什么网站推广怎么做
  • 济南正规的网站制作十大免费网站推广入口
  • 3d效果图什么网站做的好广告视频
  • 5分钟建站wordpress站长统计免费下载
  • wordpress termmeta十大seo免费软件
  • 网页设计基础课程介绍seo平台代理
  • mui做的h5网站案例免费网站在线观看人数在哪
  • 自适应响应式网站源码cps广告联盟网站
  • h5企业模板网站搜索引擎营销优化的方法
  • 宁波网站制作网站互联网公司网站模板
  • 摄影网站appseo排名优化推广教程