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

力扣每日一题 611. 有效三角形的个数

其实知道怎么判断三个数能否组成三角形就可以了,任意两边之和大于第三边,但还有另一种方法,把数字从小到大排序a,b,c。如果a+b>c就可以组成,否则就不行

考虑到数据范围是1e3,显然三重循环进行暴力是不可行的,很自然想到把数组进行排序,然后枚举两条边,二分查找第三条边的可选范围

我使用lower_bound找到第一个大于等于的数字,也就是最小的那个不可用的值的位置。

顺便注意一下特殊情况,0是无法构成三角形的一条边的,所以需要丢弃,同时特判一下只有两条边的情况

int triangleNumber(vector<int>& nums) {sort(nums.begin(), nums.end());int len = nums.size();if (len <3) return 0;int ans=0;for (int i=0; i<len; ++i){if (nums[i]==0) continue;for (int j=i+1; j<len; ++j){auto pos = lower_bound(nums.begin(), nums.end(), nums[i]+nums[j]);if (pos == nums.end()){ans += len-j-1;}else{ans += pos - (nums.begin()+j) -1;}}}return ans;}

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

相关文章:

  • 枣庄网站开发招聘中山发布微信公众号
  • 电子商务系统网站设计p2p网站制作流程
  • wordpress 手机 app台州百度搜索优化
  • 【读书笔记】深入理解JVM C6-9 虚拟机执行子系统
  • 化妆品行业的网站开发网站建设实训报告模版
  • 赤峰网站建设做新媒体广告的网站
  • 网站开发的毕业周记扬州城乡建设局网站
  • PS中的{#,N#}
  • 深度学习o
  • 咸阳网站建设公司电话wordpress读取数据库
  • 图书翻页的动画 做网站启动用dw网页设计心得体会
  • 拆解爆款内容的三维切片:从0到1直接套用
  • OpenAI 实现额外传参
  • 概念详解:单分支开发VS多分支开发
  • 先做网站后备案吗建设网站哪家便宜
  • 男女性做那个视频网站微信小程序广告投放价格表
  • 重庆网站建设公司哪个最好城乡住房规划建设局网站
  • 【android bluetooth 协议分析 18】【PBAP详解 1】【为何我们的通话记录中会出现1-521-8xx-1x9x】
  • linux平台下nginx的新手教程
  • 电商设计的工作内容大连自动seo
  • 什么是MCP协议,其在AI大模型系统中的作用是什么?
  • 铜陵app网站做营销招聘信息wordpress里的发消息给我
  • 制作一个买股票的网站怎么做国家备案网查询
  • 郑州网站建设工作网站开发成本都有哪几项
  • 北京大学php培训网站源码(dedewordpress投稿功能
  • 小型公司建网站烟台网站建设力荐企汇互联见效付款
  • 平台中如何一键安装、更新EDA工具
  • 百度网站 v怎么怎做福州app制作公司
  • BIKE算法:NIST后量子标准化第四轮入选者,虽未被标准化,但推动了密码学的边界
  • 数据结构——基本查找算法