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

泰安哪里可以做网站公司网站建设方案详细方案

泰安哪里可以做网站,公司网站建设方案详细方案,水果网页设计代码,做家教有什么好的资料网站【LeetCode刷题】Day 16 题目1:560.和为k的子数组思路分析:思路1:前缀和 哈希表 题目1:560.和为k的子数组 思路分析: 问题1:怎样找到数组所有子数组? 方式一:暴力枚举出来&#x…

【LeetCode刷题】Day 16

  • 题目1:560.和为k的子数组
    • 思路分析:
    • 思路1:前缀和 + 哈希表

在这里插入图片描述

题目1:560.和为k的子数组

在这里插入图片描述

思路分析:

问题1:怎样找到数组所有子数组?

方式一:暴力枚举出来,以i开始,列出以i开头的所有子数组[i,j](i <= j<= size-1)再i++,列出下一个位置开头的所有子数组。

方式二:前缀和思想,我们用dp[i]来表示[0,i]的数组,要找以i结尾的所有子数组,只需要 dp[i]-dp[j](0<= j <= i-1) 就可以表示所有以i结尾的子数组

下图就这题引入:
请添加图片描述

在这里插入图片描述
问题2:为什么这样转换?

因为在求以i结尾的所有子数组的和时,i和k是不变的,他们的差值也是固定值,所以问题就转换为:前缀和为k的数量,注意: 0<= j <=i-1

问题3:怎样不创建前缀和数组,但统计数量?

用一个int sum来就可以实现,再加上哈希表,就能解决这些问题。

思路1:前缀和 + 哈希表

代码实现:

class Solution {
public:int subarraySum(vector<int>& nums, int k) {//前缀和+哈希表unordered_map<int,int> hash;int sum=0 , ret=0;//处理当sum[i]本身等于k的情况hash[0] = 1;for(auto i : nums){sum+=i;//判断是否存在值为sum-k的key,有就加数量if(hash.count(sum - k)) ret+=hash[sum-k];hash[sum]++;}return ret;}
};

LeetCode链接:560.和为k的子数组

http://www.yayakq.cn/news/516628/

相关文章:

  • 东莞网站制作公司是什么市民专线是什么
  • 织梦手机网站怎么做河南省建设工程招标投标信息网
  • 如何 网站收录电商设计需要具备什么
  • 英文字体设计网站ppt设计灵感
  • vs2010 网站开发教程网站上有声的文章是怎么做的
  • 创造网站的软件新建网站需要多少钱
  • 购物网站建设需要什么资质怎么制作一个网站5个网页
  • wordpress网站安装插件网站开发人员属于
  • 不会编程 做网站seo网站内部优化
  • 90后小姑娘做网站软件开发是编程吗
  • 文友胜做的网站辽宁企业信息公示系统
  • 电子商务网站建设 试卷赚钱的网站做任务
  • 泉港区规划建设局网站网站空间免费的能用吗
  • 标志空间网站开源建站软件
  • asp做一个简单网站wordpress 最新文章列表
  • 长沙微交易网站建设信息流推广渠道有哪些
  • 开店装修话做那个网站找工人家里面的服务器可以做网站吗
  • 网站建设服务怎么样wordpress主题无法安装这个包
  • 绍兴 网站建设 电话做网站刷QQ会员网站
  • 网站备案是自己可以做吗wordpress 主页重定向
  • 福州网站建设方案网站建设销售常见问题
  • 网站付费功能描述域名空间有了怎么做网站
  • 安徽网站设计哪家效果好农家乐网站源代码
  • 涿州市查建设局网站网页制作人员培训课程
  • 有没有做淘宝的网站吗国际网站怎么注册免费的
  • 深圳专业网站建设价格泰州网站排名seo
  • 郑州竞价托管公司哪家好瑞安网站建设优化推广
  • 微信软件定制开发青岛优化网站技术
  • 肇庆市专注网站建设平台编程常用代码大全
  • 如何做好营销型网站用户体验湖南纯手工seo电话