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

江苏网站建设网站排名优化百度热搜seo

江苏网站建设网站排名优化,百度热搜seo,手机网站在后台怎么做编辑,常见网络营销方式有哪些Halo,这里是Ppeua。平时主要更新C,数据结构算法,Linux与ROS…感兴趣就关注我bua! 和为K的子数组 题目:示例:题解:解法一:解法二: 题目: 示例: 题解: 解法一: 暴力解法:我们很容易想到通过两个for循环去遍…

在这里插入图片描述
Halo,这里是Ppeua。平时主要更新C++,数据结构算法,Linux与ROS…感兴趣就关注我bua!

和为K的子数组

  • 题目:
  • 示例:
  • 题解:
    • 解法一:
    • 解法二:

在这里插入图片描述

题目:

在这里插入图片描述

示例:

在这里插入图片描述

题解:

解法一:

暴力解法:我们很容易想到通过两个for循环去遍历数组中所有和的可能,之后来判断有几个满足K.他的代码十分的简单,所以这里直接给出.

class Solution {
public:int subarraySum(vector<int>& nums, int k) {int count = 0;for (int start = 0; start < nums.size(); ++start) {int sum = 0;for (int end = start; end >= 0; --end) {sum += nums[end];if (sum == k) {count++;}}}return count;}
};

这里通过一个start与end来控制子数组区间.若为K则计数++.

我们仔细观察这样的做法.可以很容易的发现,**我们可以通过前缀和来解决两层循环的问题.**于是就有了解法二:利用前缀和来解决此类问题.

解法二:

不熟悉前缀和的uu们可以看看这篇文章:[前缀和]((138条消息) 【高精度加减乘除法、一维二维前缀和&&差分】思路讲解及代码实现_ppeua的博客-CSDN博客)

这里就直接开始推导了,这里利用的是一维的前缀和方法.

定义:**pre[i]**表示从0~i的所有数组元素之和.

那么根据前缀和的定义:j~i区间内的元素之和可以表示为:pre[i]-pre[j-1],我们要判断的就是这个结果能不能等于K.

所以现在的求解就简化为下面这个式子:
在这里插入图片描述

我们对两边式子进行简单的数学推导可以得到.

在这里插入图片描述

这样我们可以通过一个hash来存储值,之后只要验证当前遍历的这个前缀和-k的结果是否出现在hash当中.若出现则+上其出现的次数.

代码较为简单:

class Solution {
public:int subarraySum(vector<int>& nums, int k) {for(int i=1;i<nums.size();i++){nums[i]+=nums[i-1];}unordered_map<int,int>mp;mp[0]=1;int res=0;for(int i=0;i<nums.size();i++){if(mp.find(nums[i]-k)!=mp.end()){res+=mp[nums[i]-k];}mp[nums[i]]++;}return res;}
};

有两个很重点的问题:

  1. 为什么mp[0]=1?

    为了应对 nums[0] +nums[1] + … + nums[i] == k,也就是从下标 0 累加到下标 i刚好满足的情况.

    举个例子:k为6

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d76gHMzW-1690721194136)(9feab2bfaa7a4eeaaf2882827c8466d.jpg)]

​ 当这种情况下,第一次遍历到原数组为3,前缀和数组为6的位置的时候.此时pre-k=0,是刚好满足情况的.所以需要先预设一个mp[0]=1的情况.

  1. 为什么是res+=mp[nums[i]-k]:

    举个例子:K仍为6

在这里插入图片描述

​ 这道题的答案是4,当遍历到第一个6的位置上时,得到第一个答案.遍历到第二个位置时,得到第二个答案.这两种情况都是:pre-k=0

遍历到12时得到第三个答案,此时pre-k=6.那么此时只有三个答案嘛?不是的,12-第一个6是一个答案.12-第二个6也是一个答案.

遍历到第二个位置时,得到第二个答案.这两种情况都是:pre-k=0

遍历到12时得到第三个答案,此时pre-k=6.那么此时只有三个答案嘛?不是的,12-第一个6是一个答案.12-第二个6也是一个答案.

所以:res+=mp[nums[i]-k],是为了直接加上相同情况的可能.

http://www.dinnco.com/news/63622.html

相关文章:

  • 网站建设公司的前景seo技术 快速网站排名
  • 平度推广网站建设北京seo技术交流
  • 泰州哪家做网站建设比较好磁力兔子
  • 北海建设厅网站seo的中文是什么
  • 网站建设项目wbs中国产品网
  • 网站服务器租用价格怎么算电子商务培训
  • 可以做问卷挣钱的网站搜索引擎seo如何优化
  • 石家庄学做网站建设培训seo单页面优化
  • 专业网站建设哪家好营销策略有哪些有效手段
  • 制作网站商百度系app有哪些
  • 先做网站再付款 怎么回答自己怎么建网站
  • 沈阳市人大网站建设时间网络推广的常用方法
  • 网站建设营销开场白深圳网络营销和推广渠道
  • 网站建设公司如何做大2345网址导航官网
  • 做网站公司哪好农业推广
  • 做的做的比较好的网站郑州热门网络推广免费咨询
  • c 做网站怎么连接到别的网页免费建网站的平台
  • ps怎么在dw上做网站南安seo
  • 龙岩网站优化seo顾问培训
  • 2023年新闻热点事件摘抄seo网络推广技术
  • 生活常识网站源码免费二级域名注册网站
  • 马鞍山网站建设公司科学新概念seo外链平台
  • 2023年小微企业所得税优惠政策关键词优化排名详细步骤
  • 服务器ip地址怎么查seo排名赚
  • 门户网站综合型门户品牌营销策略有哪些
  • 网站建设合同属于公司网站建设哪家公司好
  • 深圳网站做的好的公司名称seo深圳网络推广
  • 深圳网站建设是什么获客
  • 山西网站开发培训石家庄seo推广公司
  • 石家庄做网站wsjz网站建设公司网站