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

【优选算法】5----有效三角形个数

又是一篇算法题,今天早上刚做的热乎的~

其实我是想写博客但不知道写些什么(就水一下啦)

-------------------------------------begin-----------------------------------------

题目解析:

这道题的题目算是最近几道算法题里面题目最短的,但是单单看题目的话,我就只知道有一个数

组,需要我们去返回其中符合三角形特性的三条边,所以我们可以从示例入手,了解这道算法需要

我们去实现的地方~

讲解算法原理:

先说暴力解法吧,我们就需要用到三个for循环来进行遍历,时间复杂度为O(n^3),在力扣上面肯

定是编译不过的,所以在这个基础上,我们需要优化算法~

新思路:我们可以将所给数组先进行排序,排序成单调递增的数组,两个指针left和right,left指

针从位置0向右遍历,right从n-1位置向左遍历,分两种情况,两指针所指数的和大于位置i的值和

小于位置i的值,再定义一个ret变量,用于储存有效三角形的个数~

编写代码:

class Solution 
{
public:int triangleNumber(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;}
};

差不多就是这个样子啦~

题目链接直达->

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

----------------------------------------end----------------------------------------

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

相关文章:

  • C++打字模拟
  • 最新版pycharm如何配置conda环境
  • UML-对象图(Object Diagram)
  • Jmeter 动态参数压力测试时间段预定接口
  • 超大型集团合并报表数智管理转型
  • [MCAL]Mcu配置
  • Qt基础项目篇——Qt版Word字处理软件
  • 算法刷题笔记——图论篇
  • Java空指针异常处理:判空、Optional与Assert解析
  • 【vim】vim编辑器如何设置行号
  • MySQL可直接使用的查询表的列信息
  • 在线宠物用品|基于vue的在线宠物用品交易网站(源码+数据库+文档)
  • 《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压
  • 使用LabVIEW的History功能实现队列数据的读取而不清空
  • 电脑如何访问手机文件?
  • SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用
  • java上传图片功能实现
  • 73,【5】BUUCTF WEB [网鼎杯 2020 玄武组]SSRFMe(未解出)
  • 【FreeRTOS 教程 一】任务结构体及其基础创建使用
  • 深入剖析 JVM 内存模型
  • 解决DeepSeek-R1模型在Cursor中使用报错的问题
  • ASP.NET Core 6.0 如何处理丢失的 Startup.cs 文件
  • Java如何向http/https接口发出请求
  • 数据分析 变异系数
  • 利用免费GIS工具箱实现高斯泼溅切片,将 PLY 格式转换为 3dtiles
  • 面试-二维数组
  • 如何使用 findIndex() 方法查找数组中的第一个匹配元素的索引?
  • 5. 马科维茨资产组合模型+政策意图AI金融智能体(Qwen-Max)增强方案(理论+Python实战)
  • Centos类型服务器等保测评整/etc/pam.d/system-auth
  • 从工厂到桌面:3D打印制造潮玩手办