Leet code 611 有效三角形个数

简单有效的思路:双指针解法

比如给出一个nums={4,3,2,4,5,6,8,10}

先将nums排序 -> { 2, 3, 4, 4, 5, 6, 8, 10}

for(int i=nums.size()-1;i>=2;i--)  i的下标为当前最大值的下标

左指针定义0  右指针定义目前最大值下标的左一位

再让左右下标进入while循环

三角形有个很重要的定义 如果较小的两边之和大于第三边那么该三角形一定成立

比如进入第一次while循环

left指向 2  right指向 8  2+8=10 三角形不成立 那么 left++

left指向3  right指向 8   3+8>10 成立 ,那么 right和left之间所有必然成立  count+=right-left

right-- 继续看成立否   直到 left==right 退出循环

代码如下

class Solution {
public:int triangleNumber(vector<int>& nums) {int count=0;sort(nums.begin(),nums.end());for(int i=nums.size()-1;i>=2;i--){int right=i-1;int left=0;while(right>left){if(nums[left]+nums[right]>nums[i]){int sum=right-left;count+=sum;right--;}else{left++;}}}return count;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

管理npm源:如何使用nrm工具提升你的开发效率

在 JavaScript 和 Node.js 的开发过程中&#xff0c;npm&#xff08;Node Package Manager&#xff09;扮演着至关重要的角色&#xff0c;它是管理项目依赖的主要工具。然而&#xff0c;由于网络环境的差异&#xff0c;特别是在中国大陆&#xff0c;直接使用 npm 官方源可能会遇…

【C++】继续学习 string类 吧

开始使用 string类 吧 1 继续学习1.1 扩容机制1.2 string类对象的访问及遍历操作1.3 string类对象的修改操作1.4 其他一些成员函数 2 实践解决问题&#xff1a;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&…

钉钉h5应用 环境报错Error: Do not support the current environment:notInDingTalk

钉钉h5应用 环境报错 Error: Do not support the current environment&#xff1a;notInDingTalk problem Error: Do not support the current environment&#xff1a;notInDingTalk reason 前端页面运行在普通浏览器 solution 需要将h5页面在后台发布后&#xff0c;在钉…

L2-001 紧急救援(Java)

作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0c;你的任务是带领你的…

使用awk和正则表达式过滤文本或字符串 - 详细指南和示例

当我们在 Linux 中运行某些命令来读取或编辑字符串或文件中的文本时&#xff0c;我们经常尝试将输出过滤到感兴趣的特定部分。这就是使用正则表达式派上用场的地方。 什么是正则表达式&#xff1f; 正则表达式可以定义为表示多个字符序列的字符串。关于正则表达式最重要的事情之…

自建Redis蜜罐以捕获和分析潜在攻击

一、引言 随着网络攻击的日益频繁和复杂&#xff0c;传统的防御措施往往难以应对。蜜罐作为一种主动防御技术&#xff0c;通过模拟有价值的服务来吸引攻击者&#xff0c;从而收集和分析攻击数据&#xff0c;提高网络安全性。本文将介绍如何自建一个Redis蜜罐&#xff0c;以捕获…

微服务-高级篇

微服务-高级篇 一.微服务保护1.初识Sentinel2.微服务整合Sentinel3.限流4.隔离和降级5.授权规则6.规则管理模式 二、分布式事务1.什么是分布式事务&#xff1f;2.理论基础3.部署与集成Seata4.Seata的四种模式5.Seata高可用 三、分布式缓存1.Redis持久化2.搭建主从架构与哨兵模式…

纷争不断的低代码平台

在IT行业&#xff0c;技术的更新换代总是伴随着争议和质疑。低代码平台&#xff0c;作为一种旨在简化软件开发过程的技术&#xff0c;也不例外。但是&#xff0c;就像任何新兴技术一样&#xff0c;真正的价值往往在于实际应用中得到验证。今天&#xff0c;我要分享的故事&#…

【理解机器学习算法】之Nearest Shrunken Centroid(纯Python)

从头开始实现最近缩小质心&#xff08;NSC&#xff09;分类器涉及理解它如何通过将质心缩小到所有类的总质心方向来修改基本的最近质心方法&#xff0c;有效地执行特征选择。这种方法特别是在微阵列预测分析&#xff08;PAM&#xff09;中的应用而闻名。这里&#xff0c;我们将…

13. Nginx进阶-平滑升级

简介 注意点 当前服务器不关机&#xff1b;用户可以正常访问&#xff1b;由低版本升为高版本&#xff1b;只支持编译安装的nginx&#xff1b; 升级的原理 在不停掉老进程的情况下&#xff0c;启动新进程。老进程负责处理仍然没有处理完成的请求&#xff0c;但不接受新请求。…

docker 安装 Jenkins

一、安装 jenkins 中文文档&#xff1a; https://www.jenkins.io/zh/doc/book/installing/#docker jenkins 提供了详细的安装方式和步骤&#xff0c;这里咱们使用 docker 进行安装 根据文档上的命令&#xff0c;自己修改如下&#xff1a; docker run \ -u root \ --name jenki…

嵊州吃喝玩乐篇

1. 豆腐馒头 胖大姐豆腐馒头&#xff08;推荐&#xff09; 地址: 嵊州市越秀路96-98号 高德地图搜 “胖大姐黄泽豆腐馒头” 黄泽豆腐馒头 地址&#xff1a;嵊州市越秀路111号 高德地图搜 “嵊州市玉英豆腐馒头店” 2. 烧烤 老张烧烤&#xff08;推荐&#xff09; 地址&a…

【IDEA】2023版IDEA安装破解教程

2023版IDEA安装破解教程 第一步&#xff1a;IDEA的卸载 这里以Windows11系统为例&#xff0c;首先我们打开控制面板&#xff0c;点击程序&#xff0c;找到自己的IDEA&#xff0c;双击卸载。&#xff08;或者可以直接找到idea所在文件位置&#xff0c;直接delete文件夹&#x…

vue实现xml,sql,JSON自动格式化高亮

实现xml&#xff0c;json&#xff0c;sql代码组件格式化高亮&#xff1a; 需要下载的依赖&#xff1a; <template><div class"box"><div class"top" v-if"flag"><span class"text">Theme:</span><…

Vue2:路由守卫实现权限管理之全局前置路由守卫

一、情景说明 我们访问任何一个互联网系统&#xff0c;如淘宝、CSDN等&#xff0c;都会遇到按钮权限的情况。 那么&#xff0c;如何在Vue项目中实现按钮权限控制了&#xff1f; 这里就用到了路由守卫技术 它可以类比于SpringBoot项目中的拦截器。 在拦截器里做的权限控制。 …

惠普 DsekJet GT 5810/5820常见问题及解决方法

1、HP DeskJet GT 5810/5820机器的屏幕出现“P”时&#xff0c;该如何操作&#xff1f; 当屏幕出现“P”时&#xff0c;放入A4纸&#xff0c;按住“进纸键”3秒即可&#xff0c;打印机会打印出一张校准页。 2、HP DeskJet GT 5810/5820机器的屏幕出现“A”时&#xff0c;该如何…

【开源】JAVA+Vue.js实现食品生产管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3 食品管理模块2.4 生产销售订单管理模块2.5 系统管理模块2.6 其他管理模块 三、系统展示四、核心代码4.1 查询食品4.2 查询加工厂4.3 新增生产订单4.4 新增销售订单4.5 查询客户 五、…

Redis常见的15个【坑】,避坑指南

一、常见命令 1.1 过期时间意外丢失 原因&#xff1a; SET命令如果不设置过期时间&#xff0c;那么Redis会自动【擦除】这个key的过期时间 1.2 DEL命令阻塞redis key是String类型时&#xff0c;DEL时间复杂度是O(1)key是List/Hash/Set/ZSet类型&#xff0c;DEL时间复杂度是…

开发知识点-前端-layUI

layui layertabletable render <script type"text/html" id"buttonTpl">{{# if(d.check true){ }}<button class"layui-btn layui-btn-xs">已审核</button>{{# } else { }}<button class"layui-btn layui-btn-prim…

#include “stdafx.h“代码的位置,导致编译通不过

1.先上代码: #include <iostream> //std::cout #include <iterator> //std::distance #include <list> //std::list using namespace std;#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { list<int> mylist; …