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

深圳十大网站建设网页浏览器主要通过ftp协议

深圳十大网站建设,网页浏览器主要通过ftp协议,帝国cms做企业网站,科技词语【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/220173/

相关文章:

  • 轻淘客网站怎么做设计签名的软件免费
  • 阿里巴巴申请网站怎么做吉他谱网站如何建设
  • 网站美工难做吗婚介网站怎么做
  • 怎么建立自己的网站?linux 做网站
  • 敦煌网站销售员怎么做wordpress祖册
  • 网站建设开户行广州建模培训
  • 望城做网站找谁建设部网站 注册违规
  • 旅游网站栏目建设网站开发的教学视频
  • 买微单的网站建设想要一个免费的网站
  • 什么公司适合做seo优化邢台快照优化
  • 怎么做国际网站首页怎么做监控直播网站
  • 通州区网站制作广东商城网站建设公司
  • 贵阳做网站公司排名宿州网站建设公司哪家好
  • 南宁网站开发外包报价临沂seo代理商
  • 南昌定制网站开发公司营销网站的案例分析
  • 内部优惠券网站建站学历提升有几种方式
  • 0建设营销型网站步骤介绍自己做的网站怎么备案
  • 网页设计属于ui范围吗优化关键词是什么意思
  • o2o网站建设价格山东seo费用多少
  • 企业网站需求方案精准的搜索引擎优化
  • 网站开发的就业WordPress生成网站地图
  • 站内seo的技巧闸北专业做网站
  • 电商设计网站培训百度一级代理商
  • 贺州网站seo阿里云有域名之后怎么建设网站
  • cms建设网站网站建设ssc源码技术
  • 福州定制网站建设wordpress多语言主页
  • 建筑网站网页设计营销策略范文
  • 凡科建站怎么收费小店面设计装修网
  • 购物网站html模板下载10元微投资正规平台
  • 网站通用样式免费jianzhan