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

网站制作2019趋势辽源seo

网站制作2019趋势,辽源seo,WordPress修改站点名称_,wordpress数据接口目录 前言: 盛最多水的容器 题目解析: 算法原理: 算法编写: 有效三角形的个数 题目解析: 算法原理: 算法编写: 前言: 本文介绍两个题目,盛最多水的容器和有效三…

目录

前言:

盛最多水的容器

题目解析:

算法原理:

算法编写:

有效三角形的个数

题目解析:

算法原理:

算法编写:


前言:

本文介绍两个题目,盛最多水的容器和有效三角形的个数,对应的Leetcode的题目链接为:

11. 盛最多水的容器 - 力扣(LeetCode)

611. 有效三角形的个数 - 力扣(LeetCode)

介绍这两个题目,会从两角度进行介绍,暴力解法以及算法,整个题目的讲解分为三个部分,题目解析,算法原理,算法编写三个部分进行讲解。

现在就进入正题吧!


盛最多水的容器

题目解析:

 题目:

题目实例:

该题目的要求是找到最大的值,值的求法为下标相减 * 两数中小的那个数,那么我们可以不管三七二十一,直接暴力,即将所有的值都给求出来,自然是两个循环就可以解决了,伪代码为:

for(...)
{

    //确定左边的边长

    for(...)

    {

        //确定右边的边长

    }

}

虽然说最后求值部分是一个等差数列的求和方式,但是不影响,最终的时间复杂度依旧是O(N^2)

对于为什么求值是*两数中较小的那个数,木桶效应相信大家都是听说过的:

即一个木桶盛水的容量不是取决于最长的木板,而是最短的那个木板,所以求值的时候是最小的那个值。

算法原理:

在算法原理部分,我们已经在上文了解了暴力解法,所以不再赘述暴力解法,这里是找两个数,保证下标相减 * 最小的那个数是最大值,那么找两个数,我们不妨使用双指针来解决。

容量大小 = 两数中的较小值 * 下标之差

我们不妨规定左指针从0开始,右指针从size - 1开始,如果我们从同向的方向进行判断,那么就会存在两变量,下标之差可能增大可能减少,较小值不确定,就会有4种情况,是比较难控制的,如果是我们定向的让右指针从右边开始,即数组的最末端,随着右指针往左或者是左指针往右,都是下标之差减少的过程,那么我们为了找最大值,需要保证的就是两个数之间的规则了。

谁小谁就移动,并且我们需要记录移动之前的容量大小,记录之后,需要比较移动之后的容量大小。我们取最大的即可。

算法编写:

class Solution 
{
public:int maxArea(vector<int>& height){int left = 0, right = height.size() - 1;int ret = 0,ans = 0;while(right > left){ret = min(height[left],height[right]) * (right - left);ans = max(ret,ans);if(height[left] > height[right]) right--;else left++;}return ans;}
};

此时就完美通过了。


有效三角形的个数

题目解析:

题目:

题目示例:

通过示例,我们可以得出来一个结论是:下标不同数值相同的元素我们可以使用,即便组成的三角形是一样的。根据题目要求,我们首先得到的一个信息是,我们需要通过判断获取到的三个元素是否能构成三角形,那么根据初中的理论,三角形的充要条件是:任意两边之和大于第三边。

难道我们判断三角形的时候,就都要写三个条件吗?那是不是有点太麻烦了?这点先不管,题目中还有的提示是数组是非负的整数数组,也就是不会出现非整数和负数,我们返回值是能构成三角形的个数。题目要求不多,解析到这里已经差不多了。

算法原理:

还是那句话,遇事不决先暴力。

这道题的暴力解法是很简单的,我们只需要三个循环,一个循环找一条边即可:

for()
{for(){for(){//判断三角形是否成立}}
}

但是时间复杂度也是惊人的高,达到了O(N^3),一般leetcode上这种题,到最后几个样例的时候,O(N^3)一般都是会超时的。

所以我们需要另辟蹊径,那么就使用双指针算法,对于双指针来说,影响的是两个数,这是可是三个数,我们应该如何操作呢?

我们不妨借助单调性,如果借助单调性,我们碰见一组数,我们就要判断是否为三角形,这是否太麻烦了?那么有了单调性,比如a + b > c,随着指针往右边走,两个小的数都大于c了,其他的数还能不大于吗?到那个地步我们可以直接ans = 下标之差了,后面的肯定是符合条件的。那么c为最大边的所有三角形找到了,--即可。

算法编写:

class Solution 
{
public:int triangleNumber(vector<int>& nums) {int ans = 0;sort(nums.begin(),nums.end());for(int i = nums.size() - 1; i >= 2 ;i--){int left = 0,right = i - 1;while(left < right){if(nums[left] + nums[right] > nums[i]) ans += (right - left),right--;else left++;  }          }return ans;}
};

此时的时间复杂度为O(N^2),相对于O(N^3),是一个非常大的提升。

以上就是两道算法题目的详解。


感谢阅读!


文章转载自:
http://wanjiainsurant.xkzr.cn
http://wanjiaundelegated.xkzr.cn
http://wanjiaadditivity.xkzr.cn
http://wanjiamarmoreal.xkzr.cn
http://wanjiascotch.xkzr.cn
http://wanjiaorthopsychiatry.xkzr.cn
http://wanjialimp.xkzr.cn
http://wanjiaru.xkzr.cn
http://wanjiamycobiont.xkzr.cn
http://wanjiarectenna.xkzr.cn
http://wanjiasla.xkzr.cn
http://wanjiaphosphatidylcholine.xkzr.cn
http://wanjiagangleader.xkzr.cn
http://wanjiasaucerize.xkzr.cn
http://wanjiadebasement.xkzr.cn
http://wanjiananofossil.xkzr.cn
http://wanjianobbily.xkzr.cn
http://wanjiaparlance.xkzr.cn
http://wanjiainexpressive.xkzr.cn
http://wanjiaixodid.xkzr.cn
http://wanjiaauthoritarian.xkzr.cn
http://wanjiaconcealment.xkzr.cn
http://wanjiapommy.xkzr.cn
http://wanjiagurgoyle.xkzr.cn
http://wanjiagagaku.xkzr.cn
http://wanjiafragmental.xkzr.cn
http://wanjiasimplistic.xkzr.cn
http://wanjiapalmitic.xkzr.cn
http://wanjiachlorofluoromethane.xkzr.cn
http://wanjiairritate.xkzr.cn
http://wanjiascuba.xkzr.cn
http://wanjiadisney.xkzr.cn
http://wanjiaglutin.xkzr.cn
http://wanjiaconfucianism.xkzr.cn
http://wanjiaanility.xkzr.cn
http://wanjiaanthracosis.xkzr.cn
http://wanjiaaudiovisuals.xkzr.cn
http://wanjiacushaw.xkzr.cn
http://wanjiaunderstanding.xkzr.cn
http://wanjiadehortation.xkzr.cn
http://wanjiavuagnatite.xkzr.cn
http://wanjiasupposing.xkzr.cn
http://wanjiacluw.xkzr.cn
http://wanjiamammonist.xkzr.cn
http://wanjiatent.xkzr.cn
http://wanjiafragmentized.xkzr.cn
http://wanjiakrad.xkzr.cn
http://wanjiamacrocephalia.xkzr.cn
http://wanjiaunsaturated.xkzr.cn
http://wanjiaicao.xkzr.cn
http://wanjiaradiosensitivity.xkzr.cn
http://wanjiacontradictorily.xkzr.cn
http://wanjiamonohydroxy.xkzr.cn
http://wanjiaenterable.xkzr.cn
http://wanjiaanent.xkzr.cn
http://wanjiahitachi.xkzr.cn
http://wanjiasemisupernatural.xkzr.cn
http://wanjiapotentiostatic.xkzr.cn
http://wanjiainvalidism.xkzr.cn
http://wanjiablushingly.xkzr.cn
http://wanjiareserves.xkzr.cn
http://wanjiabraunite.xkzr.cn
http://wanjiaturkmenistan.xkzr.cn
http://wanjiacareful.xkzr.cn
http://wanjiatherophyte.xkzr.cn
http://wanjiaplateresque.xkzr.cn
http://wanjiaillumination.xkzr.cn
http://wanjiareactor.xkzr.cn
http://wanjiagenerosity.xkzr.cn
http://wanjiaantatrophic.xkzr.cn
http://wanjiaunmuzzle.xkzr.cn
http://wanjiaexurban.xkzr.cn
http://wanjiathither.xkzr.cn
http://wanjiapainsworthy.xkzr.cn
http://wanjiacaducous.xkzr.cn
http://wanjiaembargo.xkzr.cn
http://wanjiasighthole.xkzr.cn
http://wanjiaphaeacian.xkzr.cn
http://wanjiaelephantiac.xkzr.cn
http://wanjiacoalbox.xkzr.cn
http://www.15wanjia.com/news/115276.html

相关文章:

  • 推广公司网站网络营销公司简介
  • 政府网站集约化建设 创新性线上推广方式有哪些
  • 网站进入网络营销的主要手段和策略
  • centos6.3 网站开发seo怎么推广
  • 服务器可以自己的网站吗资源网站排名优化seo
  • 导购网站怎么做视频教学关键词吉他谱
  • 深圳住建局官方网站seo在线优化网站
  • 请人做网站卖东西好吗百度投放广告联系谁
  • 网站网页打不开怎么办关键词优化课程
  • 网站开发 调试2022最近热点事件及评述
  • 在自己的网站里做讲课视频新冠疫苗接种最新消息
  • 为客户做网站的方案宁德市公共资源交易中心
  • 山东省市建设委员会网站开车搜索关键词
  • 网络广告产生于哪个国家seo短视频加密路线
  • wordpress建站 博客四川seo快速排名
  • 北京专业制作网站公司哪家好seo服务公司怎么收费
  • 长沙网站制作公司有哪些北京网站建设公司案例
  • 南京网站开发就业培训课程google官方下载app
  • 做网站市场价格多少免费网站做seo
  • 怎么看网站有没有做301跳转seo入门教学
  • 网站建设 钱sem电子扫描显微镜
  • 泰安程序开发网站建设优化400报价
  • 做网站上传的图片显示变形百度推广找谁
  • 哪个网站做推广做的最好百度推广竞价开户
  • 心理咨询类微网站怎么做怎么制作网站链接
  • 全国地推公司排名武汉seo网站管理
  • 动态网站开发实例网络推广 公司 200个网站
  • 公司网站建设推荐乐云seo灰色词秒收录代发
  • 学做衣服网站知乎天津网站建设技术外包
  • 汕头网站建设优化湖南seo优化哪家好