优选算法|【双指针】|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;
    }
    
};
相关文章
|
6天前
|
算法
【优选算法专栏】专题十三:队列+宽搜(一)
【优选算法专栏】专题十三:队列+宽搜(一)
30 0
|
6天前
|
存储 算法 容器
算法:双指针
算法:双指针
13 3
|
6天前
|
算法 前端开发 JavaScript
< 每日算法:一文带你认识 “ 双指针算法 ” >
`双指针`并非指的是一种具体的公式或者范式。而是一种运算思路,用于节省逻辑运算时间的`逻辑思路`!双指针算法通常用于`优化时间复杂度`!
< 每日算法:一文带你认识 “ 双指针算法 ” >
|
6天前
|
算法
|
6天前
|
算法
优选算法|【双指针】|202.快乐数
优选算法|【双指针】|202.快乐数
|
6天前
|
算法
优选算法|【双指针】283.移动零
优选算法|【双指针】283.移动零
|
6天前
|
算法
优选算法|【双指针】|1089.复写零
优选算法|【双指针】|1089.复写零
|
6天前
|
机器学习/深度学习 算法
【优选算法专栏】专题四:前缀和(二)
【优选算法专栏】专题四:前缀和(二)
23 1
|
6天前
|
算法 vr&ar Perl
【优选算法专栏】专题四:前缀和(一)
【优选算法专栏】专题四:前缀和(一)
26 0
|
6天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。