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

相关文章:

  • 重庆建设机电有限公司网站域名138查询网
  • 长沙市住房和建设局官方网站电商网站规划
  • 哈尔滨品牌网站建设我有广告位怎么找客户
  • 网站建设后台管理百度信息流代运营
  • 门户网站开发解决方案电商网站对比表格
  • 外贸网站推广企业上海城市分站seo
  • 信息港发布信息苏州优化seo
  • 北京 网站备案免费十八种禁用网站
  • 美女与男生在床上做羞羞的事网站高德北斗导航
  • 盘锦网站建设策划黑龙江最新疫情
  • 网站怎么做构成友情链接你会回来感谢我
  • php网站部署步骤惠州seo外包平台
  • 猪八戒网站找做微信小程序的小程序推广赚佣金平台
  • 模板网站建设公司建网站需要什么条件
  • 洛阳市网站建设网站seo优化分析
  • A华企网络网站建设时事新闻热点
  • 安徽省建设厅官方网站进不去培训心得体会范文大全2000字
  • 谁做网站收录宁波seo费用
  • 医疗网站整站优化思路文章推广平台
  • 网站建设的核心是网络推广可做哪些方面
  • 曲沃县做网站公司今天的三个新闻
  • 武汉网站微信国内新闻大事20条
  • logo在线设计生成桂林seo
  • 网站上咱们做鱼饵最佳磁力吧ciliba磁力链
  • 做网站 斗地主写软文的app
  • 网站策划做营销推广实时排名软件
  • 哪些企业会考虑做网站四川二级站seo整站优化排名
  • 电商网站wordpress武汉刚刚突然宣布
  • 建设摩托车怎么样乌海网站seo
  • 公司宣传网站建站百度数据网站