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

刷题笔记 day4

力扣  611 有效三角形的个数

 首先需要知道如何判断 三个数是否能构成三角形。

假如  存在三个数  a < b < c,如果要构成三角形,需要满足:

 a+b > c ;  a + c > b ; b + c > a ; 任意两个数大于第三个数就可构成三角形。

其实不难发现,如果三个数 按照从大到小排序的话 , 只需满足  a+b > c 即可。

因此第一步首先对给定数组进行排序。

其次在固定最大的数作为一条边,再用双指针 left 指向第一个数 , right 指向固定的最大的数的前一个数。  当 nums[left] + nums[right] > 固定的最大数 , 将right指针右移 ;否则将指针 left 左移。

直至固定的最大数 是数组第三个数结束位置。(解题思路)

那么该怎么统计 有效三角形个数呢?

 

class Solution {
public:int triangleNumber(vector<int>& nums) {//先给数组排序sort(nums.begin(),nums.end());int c = nums.size()-1;int count = 0; // 记录有效三角形的个数while(c>=2){int left = 0, right = c-1;while(left < right){if(nums[left] +nums[right] > nums[c]){count += (right - left);--right;}else{++left;}}--c;}return count;}
};

http://www.lryc.cn/news/104801.html

相关文章:

  • Python 2.x 中如何使用flask模块进行Web开发
  • spring websocket 调用受权限保护的方法失败
  • Vue.js2+Cesium 四、模型对比
  • Linux 之 Vi 编辑器
  • Python超实用!批量重命名文件/文件夹,只需1行代码
  • sqoop
  • PySpark 数据操作(综合案例)
  • 产品经理如何平衡用户体验与商业价值?
  • 【PostgreSQL】系列之 一 CentOS 7安装PGSQL15版本(一)
  • Nginx解决文件服务器文件名显示不全的问题
  • IO进程线程第四天(8.1)
  • WAF绕过-权限控制篇-后门免杀
  • LED灯的驱动,GPIO子系统,添加按键的中断处理
  • Gradle和Maven的区别
  • C#中 使用yield return 优化大数组或集合的访问
  • ROS实现导航中止(pub命令版+C++代码版)
  • 【VTK】读取一个 STL 文件,并使用 Qt 显示出来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK
  • 数据结构--基础知识
  • 天工开物 #7 Rust 与 Java 程序的异步接口互操作
  • python实现视频转GIF动图(无水印,包含代码详解和.exe执行文件)
  • 一套AI+医疗模式的医院智慧导诊系统源码:springboot+redis+mybatis plus+mysql
  • Android 使用modbus协议与可能遇到的问题解决一览
  • Virtualbox虚拟机中Ubuntu忘记密码
  • isPresent()
  • DC.js教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Qt应用开发(基础篇)——滑块类 Slider、ScrollBar、Dial
  • iOS的NSUserActivity
  • Android HTTP使用(详细版)
  • 【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别
  • 前端开发:基于cypress的自动化实践