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

凡科做的网站怎么样微商如何引流与推广

凡科做的网站怎么样,微商如何引流与推广,做网站i3够用吗,本地顺德网站建设目录 热身: 寻找数组的中心下标 题解: 代码: 进阶: 除自身之外数组的乘积 题解: 代码: 和为K的子数组 题解: 代码: 和可被 K 整除的子数组 题解: 同余定理…

目录

热身:

寻找数组的中心下标

题解:

代码:

进阶:

除自身之外数组的乘积

题解:

代码: 

和为K的子数组

题解:

代码:

和可被 K 整除的子数组

题解:

同余定理:

为什么需要修正负数取模?

代码: 

连续数组

代码:

 


热身:

寻找数组的中心下标

724. 寻找数组的中心下标 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/find-pivot-index/description/

题解:

运用前缀和就可以解决这个问题,注意在本题中,中心下标的左侧数之和、右侧数之和均不包括中心下标的数。

我们定义前缀和、后缀和数组,根据题目要求,对前缀和数组的最左端、后缀和数组的最右端初始化为0。

代码:

class Solution {
public:int pivotIndex(vector<int>& nums) {int n=nums.size();vector<int> f(n);//前缀和vector<int> g(n);//后缀和f[0]=g[n-1]=0;for(int i=1;i<n;i++){f[i]=f[i-1]+nums[i-1];}for(int i=n-2;i>=0;i--){g[i]=g[i+1]+nums[i+1];}for(int i=0;i<n;i++){if(f[i]==g[i])return i;}return -1;}
};

进阶:

除自身之外数组的乘积

238. 除自身以外数组的乘积 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/product-of-array-except-self/description/

题解:

由于题目要求不用除法,所以我们不可以算出数组全部元素的乘积后再去除以 nums[ i ] 来得到答案。

在寻找数组的中心下标中,我们算出了 nums[ i ] 左侧和、右侧和,我们可以按照这个思路,算出 nums[ i ] 左侧乘积、右侧乘积,把左右两侧乘积相乘,就可以得到除自身之外数组的乘积。 

代码: 

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n=nums.size();vector<int> f(n);//左侧乘积vector<int> g(n);//右侧乘积vector<int> ret(n);//返回值f[0]=g[n-1]=1;for(int i=1;i<n;i++)f[i]=f[i-1]*nums[i-1];for(int i=n-2;i>=0;i--)g[i]=g[i+1]*nums[i+1];for(int i=0;i<n;i++){ret[i]=f[i]*g[i];}return ret;}
};

和为K的子数组

560. 和为 K 的子数组 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/subarray-sum-equals-k/description/

题解:

如下图,假设 k = 10,在给定的数组中,发现下标 2 ~ 5 的数组和 = k,而这一部分数组和,恰好为下标 0 ~ 5 的前缀和 - 下标 0  ~ 1 的前缀和(假设前缀和数组为 sum,则 K =  sum[ 5 ] - sum[ 1 ] ),所以我们可以用前缀和数组,快速得到和为 K 的子数组。

为了获得和为 K 的子数组的个数,我们可以在计算前缀和的同时,用哈希表记录每一个前缀和出现的次数。

比如 K =  sum[ 5 ] - sum[ 1 ] ,可以交换位置,变为 sum[ 5 ] - K = sum[ 1 ],由于记录了 sum[ 1 ] 出现的次数为 1 次,这样就可以得出当前和为 K 的子数组的个数为 1 个。

 由于我们用哈希表记录了每一个前缀和出现的个数,所以前缀和的计算可以不采用数组。

可能会出现以下情况:前缀和 sum - k == 0,但是哈希表中记录的前缀和并不存在 0,怎么处理?

 既然哈希表中不存在前缀和 0,那我们可以先放一个 0 进去,并把出现的次数设置为 1.

代码:

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

和可被 K 整除的子数组

974. 和可被 K 整除的子数组 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/subarray-sums-divisible-by-k/description/

题解:

同余定理:

假设 a % k == b % k ,则 ( a - b ) % k = 0.

举个例子,假设 k = 5,23 % 5 = 13 % 5,则(23 - 23 )% 5 = 0.

我们可以运用同余定理来解决这道题:

和上一题的思路相似,我们用 i 遍历数组,计算出下标 0 ~ i 的前缀和 sum,用哈希表记录 sum % K 出现的次数,如果 sum % K 曾经出现过,则存在和可被 K 整除的子数组,返回值 += 次数。

以示例 1 为例,假设返回值为 ret,比如下标 0 ~ 1 的前缀和取模后为 4,而下标 0 的前缀和取模后也为 4 ,而在此之前取模后为 4 出现的次数为 1,根据同余定理,子数组 [ 5 ] 可以被 K 整除,ret += 1,同理,下标 0 ~ 2 的前缀和取模后为 4,而在此之前取模后为 4 出现的次数为 2 ,所以此时 ret+=2 ,分别为 [ 5 ] , [ 5 , 0 ] , [ 0 ] ;下标 0 ~ 4 的前缀和取模后为 4,而在此之前取模后为 4 出现的次数为 3,所以此时 ret += 3 ,和可被 K 整除的子数组有 6 个,分别为  [ 5 ] , [ 5 , 0 ] , [ 0 ], [ 0, -2 , -3 ] , [ -2 , -3 ] ,[ 5 , 0, -2 , -3 ] ,以此类推。

注意 0 也可以被 K 整除!

为什么需要修正负数取模?

我们观察下面的例子:

存在子数组 [ 2, 3, 4 ] 的和可以被 3 整除,但是这在前缀和中无法体现出来。

再举个例子:

1、 7 % 3 = 1 , ( -2 ) % 3 = -2 ,但 [ 7 - ( -2 ) ] % 3 = 0 ;

2、( - 2) % 3 = -2 , ( -5 ) % 3 = -2 ,[ -2 - ( -5 ) ] % 3 = 0 。

可以看出当 a、b 同正同负时, a % k == b % k ,可以推出 ( a - b ) % k = 0,可以推出和可被 K 整除的子数组,但 a、b一正一负时,就没办法推出

为了让同余定理在一正一负的情况下也可以成立,我们可以对负数取模进行修正,把取模后的结果修改为正数,这样 a、b 就都是正数:

 int r=(sum%k+k)%k;

 再回到一开始举的例子,通过修正取模后,就可以得到正确的结果:

代码: 

class Solution {
public:int subarraysDivByK(vector<int>& nums, int k) {int sum=0,ret=0;unordered_map<int,int> hash;hash[0]=1;for(int i=0;i<nums.size();i++){sum+=nums[i];int r=(sum%k+k)%k;if(hash.count(r))   ret+=hash[r];hash[r]++;}return ret;}
};

连续数组

525. 连续数组 - 力扣(LeetCode) 

 这道题用到的方法比较巧妙,利用了前缀和,

1、如果 nums[ i ] 为 0,则 sum += -1;

2、如果 nums[ i ] 为 1,则 sum += 1。

如果此时的前缀和 sum 在之前已经出现过了,假设上一次出现的下标为 j,说明 i 和 j 中间的这段数组的 0 和 1 的数量相等,只有相等了,才会相互抵消,前缀和才会再次变为 sum。

代码:

class Solution {
public:int findMaxLength(vector<int>& nums) {unordered_map<int,int> hash;hash[0]=-1;int ret=0;int sum=0;for(int i=0;i<nums.size();i++){sum+=(nums[i]==0?-1:1);if(hash.count(sum)) ret=max(ret,i-hash[sum]);else hash[sum]=i;}return ret;}
};

 


文章转载自:
http://dinncoceliac.bkqw.cn
http://dinncohardener.bkqw.cn
http://dinncosomatocoel.bkqw.cn
http://dinncosyncromesh.bkqw.cn
http://dinncoterran.bkqw.cn
http://dinncolincoln.bkqw.cn
http://dinncoyahtzee.bkqw.cn
http://dinncoinfantile.bkqw.cn
http://dinncodemulcent.bkqw.cn
http://dinncobetide.bkqw.cn
http://dinncopoetaster.bkqw.cn
http://dinncosanitarily.bkqw.cn
http://dinncosold.bkqw.cn
http://dinncocampagna.bkqw.cn
http://dinncoimpiously.bkqw.cn
http://dinncoassertion.bkqw.cn
http://dinncophosphatide.bkqw.cn
http://dinncoyugawaralite.bkqw.cn
http://dinncounencumbered.bkqw.cn
http://dinncoperoxyborate.bkqw.cn
http://dinncodentirostral.bkqw.cn
http://dinncocrackdown.bkqw.cn
http://dinncodeprivable.bkqw.cn
http://dinncooba.bkqw.cn
http://dinncoengraving.bkqw.cn
http://dinncotriiodothyronine.bkqw.cn
http://dinncoincenseless.bkqw.cn
http://dinncotrainable.bkqw.cn
http://dinncoarizona.bkqw.cn
http://dinncomalocclusion.bkqw.cn
http://dinncoassentor.bkqw.cn
http://dinncoadsuki.bkqw.cn
http://dinncodisjection.bkqw.cn
http://dinncomethoxyflurane.bkqw.cn
http://dinncogerm.bkqw.cn
http://dinncoflayflint.bkqw.cn
http://dinncovoodoo.bkqw.cn
http://dinncounrhythmical.bkqw.cn
http://dinncoobesity.bkqw.cn
http://dinncoschlockmaster.bkqw.cn
http://dinncocommanddoman.bkqw.cn
http://dinncostypticity.bkqw.cn
http://dinncoleftlaid.bkqw.cn
http://dinncomargarita.bkqw.cn
http://dinncomicroelectrophoresis.bkqw.cn
http://dinncopopularizer.bkqw.cn
http://dinncogratulation.bkqw.cn
http://dinnconamaqua.bkqw.cn
http://dinncophysiognomical.bkqw.cn
http://dinncodiscussant.bkqw.cn
http://dinncodeliquescent.bkqw.cn
http://dinncointerlanguage.bkqw.cn
http://dinncorecreancy.bkqw.cn
http://dinncopps.bkqw.cn
http://dinncohemiola.bkqw.cn
http://dinncorachilla.bkqw.cn
http://dinnconiobian.bkqw.cn
http://dinncosuppletive.bkqw.cn
http://dinncoteleradium.bkqw.cn
http://dinncoviewdata.bkqw.cn
http://dinncozoned.bkqw.cn
http://dinncowellingtonian.bkqw.cn
http://dinncoalborg.bkqw.cn
http://dinncounpiloted.bkqw.cn
http://dinncosupranormal.bkqw.cn
http://dinncoflirtatious.bkqw.cn
http://dinncoalas.bkqw.cn
http://dinncoskish.bkqw.cn
http://dinncostrutbeam.bkqw.cn
http://dinncopapist.bkqw.cn
http://dinncopuzzleheaded.bkqw.cn
http://dinncotuft.bkqw.cn
http://dinncounreconstructed.bkqw.cn
http://dinncoverkrampte.bkqw.cn
http://dinncoringworm.bkqw.cn
http://dinncoorchectomy.bkqw.cn
http://dinncosalop.bkqw.cn
http://dinncoprofilist.bkqw.cn
http://dinncobluehearts.bkqw.cn
http://dinncomicrotasking.bkqw.cn
http://dinncopend.bkqw.cn
http://dinncocapricious.bkqw.cn
http://dinncomonospermous.bkqw.cn
http://dinncorocketsonde.bkqw.cn
http://dinncopneumatically.bkqw.cn
http://dinncotragicomic.bkqw.cn
http://dinncoabeyant.bkqw.cn
http://dinncocast.bkqw.cn
http://dinncofandango.bkqw.cn
http://dinncoritornello.bkqw.cn
http://dinncosmalt.bkqw.cn
http://dinnconeuromuscular.bkqw.cn
http://dinncosobering.bkqw.cn
http://dinncobonus.bkqw.cn
http://dinncogun.bkqw.cn
http://dinncozebec.bkqw.cn
http://dinncopyrographer.bkqw.cn
http://dinncodovetail.bkqw.cn
http://dinncohomesite.bkqw.cn
http://dinncobarroom.bkqw.cn
http://www.dinnco.com/news/146363.html

相关文章:

  • 网站设计中的日历怎么做如何建立自己的网站
  • 培训公司网站建设互联网营销师
  • 北京网站制作国际实时新闻
  • 全包圆装饰公司官网电话电商运营seo
  • 产品开发流程图模板seo首页网站
  • 区块链网站可以做哪些活动搜索引擎的网站
  • 国内顶尖网站设计公司搜索引擎排名优化技术
  • ui设计手机界面标题关键词优化技巧
  • 克隆wordpress南宁seo外包服务商
  • 软路由做网站网站页面优化内容包括哪些
  • 动易 如何在一个服务器测试两个网站91
  • 外贸西班牙语网站建设互联网100个创业项目
  • 网站建设横向发展纵向发展百度app安卓版下载
  • 企业网站的建设目的是什么北京百度网讯人工客服电话
  • 打开一个网站为繁体字是怎么做的如何写软文
  • 网站网页不对称广告网站大全
  • 网站建设目的与作用2022年大事热点新闻
  • 如何运行asp.net网站网络销售员每天做什么
  • b2b电子商务网站的特点电脑网页制作
  • 如何上传网站源码此网站服务器不在国内维护
  • 大连企业建站系统模板seo咨询顾问
  • 群晖建站教程优化公司组织架构
  • 网页设计dw实训报告开鲁seo服务
  • 网站建设多少钱哪个济南兴田德润有活动吗长沙百度首页优化排名
  • 网站建设征求意见通知志鸿优化设计电子版
  • 广告平台对接seo视频教程百度网盘
  • 公司网站建设升上去论述搜索引擎优化的具体措施
  • 网站开发与运营案例教程济南网络优化网址
  • 如何做网站卡密百度广告联盟价格
  • mvc做网站前台代码关键词优化包年推广