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

【双指针】有效三角形的个数

文章目录

  • 611. 有效三角形的个数
    • 解题思路:排序+双指针

在这里插入图片描述

611. 有效三角形的个数

611. 有效三角形的个数

​ 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。

示例 1:

输入: nums = [2,2,3,4]
输出: 3
解释:有效的组合是: 
2,3,4 (使用第一个 2)
2,3,4 (使用第二个 2)
2,2,3

示例 2:

输入: nums = [4,2,3,4]
输出: 4

提示:

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000

解题思路:排序+双指针

​ 和上一道题一样,如果使用暴力破解也就是枚举的话,此时会超时,所以我们就要换一种方式来解决!

​ 我们首先要知道能构成三角形的条件:两边之和大于第三边。但是因为这道题的数据是无序的,如果我们不用排序的话,可能会稍微麻烦一些,为什么呢,因为我们得判断三条边,两两组合是否都大于第三边才算是构成三角形,这不也和枚举差不多吗?

但是如果我们先进行排序,将数组变成升序序列,这样子有什么好处❓❓❓

​ 这样子就能保证,大的边一定在后边,那我们只需要判断前面两个数是否大于第三个数,如果大于的话,反之用这个第三个数去和前面某一个数组合肯定也是大于另一个数的!这样子的话,我们只需要判断一次,并且不需要全部数据都去枚举!

​ 以下是算法步骤:

  1. 首先对数组排升序

  2. 固定最长的一条边,然后运用碰撞指针扫描两条边,大概是这样子:

http://www.xdnf.cn/news/1399.html

相关文章:

  • 香港科技大学广州|金融科技学域博士招生宣讲会—南开大学专场
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(五)
  • MCP介绍及Cursor中的应用 -》智能体
  • 【云服务器】在优云智算平台上安装 libnvidia-gl 的实验日志
  • Maven 手动添加 JAR 包到本地仓库笔记
  • 树莓派超全系列教程文档--(41)树莓派config.txt旧版内存控制选项
  • 单片机与FPGA的核心差异、优缺点、编程差异、典型应用场景、选型等对比分析
  • 集结号海螺捕鱼活动系统开发全解(第五篇)
  • Ubuntu20.04下GraspNet复现流程中的问题
  • 26.OpenCV形态学操作
  • tomcat Server 连接服务器 进展
  • LangChain Runnable简介
  • P1613 跑路
  • Eliciting Causal Abilities in Large Language Models for Reasoning Tasks
  • 【Python 学习笔记】 pip指令使用
  • NLP高频面试题(五十二)——BERT 变体详解
  • 什么是数据库的DDL和DML,有什么区别?
  • 《多Agent架构VS千万字长文本VS深度推理引擎——拆解Coze、通义、Kimi的AI终局博弈密码》
  • Go语言学习笔记(一)
  • 数据库11(触发器)
  • 智启未来|艾博连科技加入奇瑞雄狮科技LION AI联合实验室
  • VUE3中使用echarts,配置都正确,不出现tooltip
  • 大厂面试-redis
  • 【KWDB 创作者计划】_深度学习篇---向量指令集
  • system verilog 语句 耗时规则
  • 拥抱基因体检,迎接精准健康管理新时代
  • 3.3 技术框架:LangChain、ReAct、Memory与Tool Integration
  • ROS 快速入门教程02
  • (19)VTK C++开发示例 --- 分隔文本读取器
  • Kafka 详解