优选算法|【双指针】|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

代码

class Solution 
{
public:
    int triangleNumber(vector<int>& nums) 
    {
        int n=nums.size();//数组大小
         int num=0;//统计三角形个数
         sort(nums.begin(),nums.end());//排序
         for(int i=n-1;i>0;i--)
         {
             int left=0;
             int right=i-1;
             while(left<=right)
             {
                 //排好序后只要比他小的两个数,相加大于大的那个数,就可以组成三角形
                 if(nums[left]+nums[right]>nums[i])
                 {
                     num+=right-left;
                     right--;
                 }
                 else 
                 {
                     left++;
                 }
             }
         }
    return num;
    }
    
};
相关文章
|
14天前
|
算法 容器
【算法】——双指针算法合集(力扣)
移动零,复写零,快乐数,盛最多水的容器,有效三角形的个数,和为s的两个数(查找总价格为目标值的两个商品 ),三数之和,四数之和
|
4月前
|
算法 索引 容器
双指针算法详解
本文介绍了双指针算法及其应用。双指针算法是在数组或字符串中常用的高效技术,通过维护两个指针遍历数据结构以解决特定问题。根据指针移动方向,可分为同向双指针、相向双指针和快慢指针。同向双指针如移动零和复写零问题;快慢指针如快乐数问题;相向双指针如盛水最多的容器、有效三角形数量及多数之和等问题。通过合理运用双指针技巧,可简化代码并提高效率。
87 4
|
3月前
|
算法 C++
【算法】双指针+二分(C/C++
【算法】双指针+二分(C/C++
|
5月前
|
数据采集 算法
基于PSO粒子群算法的三角形采集堆轨道优化matlab仿真
该程序利用PSO算法优化5个4*20矩阵中的模块采集轨迹,确保采集的物品数量及元素含量符合要求。在MATLAB2022a上运行,通过迭代寻优,选择最佳模块组合并优化轨道,使采集效率、路径长度及时间等综合指标最优。具体算法实现了粒子状态更新、需求量差值评估及轨迹优化等功能,最终输出最优轨迹及其相关性能指标。
|
5月前
|
算法 容器
【算法】双指针
【算法】双指针
|
5月前
|
算法 数据建模
平面中判断点在三角形内算法(重心法)
平面中判断点在三角形内算法(重心法)
51 0
|
5月前
|
算法 C++
空间中判断点在三角形内算法(方程法)
空间中判断点在三角形内算法(方程法)
72 0
|
5月前
|
算法
平面中判断点在三角形内算法(同向法)
平面中判断点在三角形内算法(同向法)
34 0
|
5月前
|
算法 C++ Windows
空间射线与三角形相交算法的两种实现
空间射线与三角形相交算法的两种实现
56 0

热门文章

最新文章

下一篇
开通oss服务