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

职业学校网站模板江阴房产网510房产网

职业学校网站模板,江阴房产网510房产网,网页源码在线查看工具,乐清网络平台题目: 这道题我们首先可能会想到暴力解法,三个for循环然后进行check()。时间复杂度肯定是不允许的。 同时,验证可以组成三角形的条件是任意两边之和大于第三边,这就意味着我们每组要进行三次比较。但也有捷…

题目:

这道题我们首先可能会想到暴力解法,三个for循环然后进行check()。时间复杂度肯定是不允许的。

同时,验证可以组成三角形的条件是任意两边之和大于第三边,这就意味着我们每组要进行三次比较。但也有捷径——只需比较一次即可。但需要条件,让这三个数的组合按从小到大进行排列(a≤b≤c),然后我们只需验证a+b是否大于c即可。因此第一步,我们要把数组进行排序(sort)。

然后我们接下来的思路与双指针(4)的原理有点类似:

我们先计算arr[left]+arr[right](1+9=10,不构成),如果满足a+b≤c,那么left和right的中间任何一个数和left组合都不能满足三角形,所以此时我们就可以把所有数与left的组合都忽略(不用计算了)即,让left++,这是一次流程。反之如果大于c,那么此次流程中的所有数与right结合都满足要求,则有效三角形个数为right-left,然后让right--进行下一次流程,直到left与right相遇。

注意:以上整个流程都是在与10比较,当二者相遇为一个循环,循环结束后,我们要让二者与9(往前一个)比较。直到走到第三个为止。统计每次循环的有效数并求和。

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

http://www.dtcms.com/a/530996.html

相关文章:

  • 创建网站怎么创嘉兴市网站建设
  • 呼市网站开发昆明网站制作维护
  • 温江做网站网站seo优化心得
  • 青岛建站服务提高网站注册率
  • godday网站建设莱芜网上服务
  • 官方网站建设报价如何注册腾讯企业邮箱
  • 如何将网站部署到服务器网站建设与推广公司
  • 陕西企业网站建设网站logo怎么做的
  • 用照片做视频的网站wordpress 随机显示文章
  • 西安定制网站建设公司哪家好表单付款 wordpress
  • 一 网站开发体会drupal和wordpress
  • 找网站开发公司需要注意那几点公司网站做百度推广需要交费吗
  • 做兼职推荐网站购物网站前端浮动特效怎么做
  • 做网站前端难吗电商详情页素材
  • 江西南昌建设厅网站sqlite3做网站数据库
  • ui界面设计图南阳本地网络推广优化公司
  • 池州市网站建设优化网店交易平台
  • 优秀网站网页设计分析如何建站网站
  • 手机上网网站建设用帝国cms做视频网站
  • 灵璧县住房和城乡建设局网站网站的html代码在哪
  • 清镇网站建设wordpress不同分类模板
  • 宁夏成城建设集团网站wordpress后台乱码
  • 西部数码 网站管理wordpress调用所有标签
  • 沈阳沈河区网站建设wordpress自动标签页
  • 房产网站建设方案天津做网络推广公司有哪些
  • 可以免费搭建网站吗潍坊网站建设top
  • 东阳海天建设集团网站wordpress媒体库文件
  • 营口建设工程信息网站中国铁建平台登录
  • 从化定制型网站建设虚拟主机wordpress
  • 早教网站建设方案电商网站的功能