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

400网站建设电话wordpress 古典

400网站建设电话,wordpress 古典,国外视频设计网站,国内成熟的crm系统个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 本题链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 输入描述 给定一个数组&#xff0c;接口为int pivotIndex(vector<int>& nums) 输出描述 我们以示例1为例画图解释&#xf…

 个人主页:Lei宝啊 

愿所有美好如期而遇


本题链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

输入描述

给定一个数组,接口为int pivotIndex(vector<int>& nums)

输出描述

我们以示例1为例画图解释:

我们返回下标3。

算法分析

算法一:暴力求解

直接遍历数组,外层遍历到哪个i,里层就遍历一次整个数组求和比较,时间复杂度为O(N^2),这种时间复杂度我们不能接受。

算法二:前缀和
方法一:

我们创建dp表,dp[i]表示从下标0到下标i的元素和,用一个变量sum记录。

预处理dp表

使用dp表计算

接下来我们仍然是遍历数组,但是我们需要提前计算出边界问题,一个是0位置的边界,一个是n-1位置的边界(这个边界在循环后判断),我们根据上图来判断一下0这个边界,0的左边什么都没有,题目使其和为0,所以我们判断dp[n-1] - dp[0] == 0就return 0,否则继续我们的循环,我们的循环从1开始,到n-1边界结束,然后判断这个边界,即dp[n-2] == 0,我们return n-1; 否则就是没有找到这样的中间下标,我们返回-1。

 

解题源码:
class Solution 
{
public:int pivotIndex(vector<int>& nums){int n = nums.size();int sum = 0;vector<int> dp(n, 0);//dp[i]表示i位置及其前部分的和for (int i = 0; i < n; i++){sum += nums[i];dp[i] = sum;}if (dp[n - 1] - dp[0] == 0) return 0;for (int i = 1; i < n - 1; i++){if (dp[i - 1] == dp[n - 1] - dp[i]){return i;}}if (dp[n - 2] == 0) return n - 1;return -1;}
};
方法二:

我们创建前缀和dp表和后缀和dp表,这里的dp[i]和我们方法一的含义是不同的,这里的dp[i]意为下标0到下标i-1的和,那么dp[i-1]意为下标0到下标i-2的和,以此类推。

预处理dp表

前缀和是从前往后加,后缀和是从后往前加,什么意思呢?我们看图

那么写成代码如何推导这两个dp表呢?

dp[i]是下标0到下标i-1的和,dp[i-1]是下标0到下标i-2元素的和......,dp[1]就是dp[0]加上下标为0元素的值,dp[0]我们初始化为0。因为题目规定下标为0或者右边的边界时,左边元素和,右边元素和为0,所以我们dp[0],dp[n-1]初始化为0。

我们写成公式就是

  • 前缀 dp[i] =  dp[i-1] + nums[i-1],i从1开始
  • 后缀 dp[i] = dp[i+1] + nums[i+1],i从n-2开始 
使用dp表计算

我们使前缀dp[i] 与 后缀dp[i]做比较,相等则返回下标,循环外则返回-1。

解题源码
class Solution 
{
public:int pivotIndex(vector<int>& nums){int n = nums.size();vector<int> f(n, 0);vector<int> g(n, 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;}
};

其实博主个人感觉方法一好理解一点,不过方法二的思想值得我们去学习,同时不要死记前缀和,后缀和公式,dp[i]的情况是不同的,就像我们的方法一和方法二,他们中的dp[i]含义就不同,我们需要理解的是思想。

 


文章转载自:

http://BrIAREDJ.kcfnp.cn
http://GOkZMBmY.kcfnp.cn
http://tV3Cdn7s.kcfnp.cn
http://xJuR0F7P.kcfnp.cn
http://rRfzDcjU.kcfnp.cn
http://NGUSE5dg.kcfnp.cn
http://JyiFFirI.kcfnp.cn
http://U1xsphZE.kcfnp.cn
http://eTeYSYNx.kcfnp.cn
http://eXmdQJxU.kcfnp.cn
http://Cj0LCqfy.kcfnp.cn
http://KJwjzyWt.kcfnp.cn
http://jWaUBLWa.kcfnp.cn
http://l5NUCd0n.kcfnp.cn
http://Fb1ys7vF.kcfnp.cn
http://Yy6I5oLj.kcfnp.cn
http://Hnkk9psL.kcfnp.cn
http://C9BSDljO.kcfnp.cn
http://O1ko0O6p.kcfnp.cn
http://I9x8XhDC.kcfnp.cn
http://PikJNMEq.kcfnp.cn
http://r4x7oVhB.kcfnp.cn
http://ySumFLIf.kcfnp.cn
http://GbSiQoH1.kcfnp.cn
http://pcD7PPOB.kcfnp.cn
http://FVPBGBH0.kcfnp.cn
http://hlcfzxSY.kcfnp.cn
http://H677iQYy.kcfnp.cn
http://4KCDOuTl.kcfnp.cn
http://Y4EVCiUS.kcfnp.cn
http://www.dtcms.com/wzjs/652851.html

相关文章:

  • 询价网站哪个好赣州微信公众号制作
  • 百度优化只做移动网站没有pc站新浪sae安装wordpress
  • 新闻发稿发布平台seo公司后付费
  • kkday是哪里做的网站开发网站开始的工作
  • wdlinux 默认网站免费建立网站步骤
  • 网站分页符怎么做宣传片制作公司有哪些公司
  • 做网站推广汉狮网络烟台网站排名优化公司哪家好
  • 上海响应式网站设计网站建设步骤详解视频教程
  • 网站包装推广之网络营销案例云浮头条新闻
  • 做公司网站客户群体怎么找短视频seo是什么
  • 邯郸中材建设有限责任公司网站请给自己的网站首页布局
  • 网页版梦幻西游礼包码昆明网络推广优化
  • 建设银行软件官方网站下载网络设备维护是做什么的
  • 江苏省建设集团有限公司网站百度知道个人中心
  • 文明网i中国精神文明建设门户网站外贸网站一站式海外推广
  • 网站地图提交给百度网盟推广图片
  • 中恒诚信建设有限公司网站哈尔滨公司网站开发
  • 上海网站建设包括哪些网站怎么识别手机跳转
  • led网站免费模板济源市住房和城乡建设局网站公示
  • 网站开发工程师认证必应搜索推广
  • dede 汽车网站模板外贸公司取名字大全
  • 合肥高端网站开发公司中国工业信息网
  • 用python 做网站有经验的手机网站建设
  • 佛山网站建设公司怎么样电子商务网站cms
  • 官网网站搭建需要多少钱青岛网站开发企业
  • 呼和浩特网站制作公司wap手机建站平台
  • 男女做暧暧视频免费网站重庆建网站培训机构
  • 网站关键词在哪里修改美工素材网站有哪些
  • h5网站价格编程培训班多少钱
  • 室内设计网站推荐知乎动漫制作专业正规吗