611.有效的三角形个数
1.题目解析
给定一个包含非负整数的数组
nums,返回其中可以组成三角形三条边的三元组个数。
补充:
1.三角形的判断:假设有三条边按大小排序:

2.题目示例
示例 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
分析题目可知是要算上重复的

3.算法分析:
①暴力枚举:
时间复杂度较高O(3*n^3)
三层for循环确定三条边,再定义一个计数器计算有小三角形的个数
//暴力枚举public int triangleNumber(int[] nums) {Arrays.sort(nums);int count=0;int len=nums.length;for(int i=0;i<len;i++){for(int j=i+1;j<len;j++){for(int k=j+1;k<len;k++){if(nums[i]+nums[j]>nums[k]){count++;}}}}return count;}
集美们,不用跑了,我帮你们试过了,过不了
解法二:
利用单调性和双指针的方法:
举个例子:
2,2,3,4,5,6,7,8,9,10
1.设置一个最大值
2.在最大数的左区间内,使用双指针和单调性的方法计算出有效三角形的个数

本宝宝建议你自己画一画,真正理解这个算法。
会出现两种情况:
①left+right>max count+=right-left right--
②left+right=<max lrft++
代码实现:
public int triangleNumber(int[] nums) {int len=nums.length;int count=0;for(int i=len-1;i>=0;i--){int max=nums[i];int left=0;int right=i-1;while (left<right){if(nums[left]+nums[right]>max){count+=right-left;right--;}else{left++;}}}return count;}
当然这个代码你是跑不过的,为什么呢?
因为你无法确定最大值,我举的栗子正好是我排过序的,若是没有排过序,不仅找不到最大值,还无用大学生的方法判断是否是有效三角形,所以一定要先排序(这都是姐走过的弯路)
public int triangleNumber(int[] nums) {Arrays.sort(nums);int len=nums.length;int count=0;for(int i=len-1;i>=0;i--){int max=nums[i];int left=0;int right=i-1;while (left<right){if(nums[left]+nums[right]>max){count+=right-left;right--;}else{left++;}}}return count;}
本题完,欢迎指正
相关文章:
611.有效的三角形个数
1.题目解析 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 补充: 1.三角形的判断:假设有三条边按大小排序: 2.题目示例 示例 1: 输入: nums [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用…...
超详细,使用JavaScript获取短信验证码
一、引言 短信验证码的重要性已经不言而喻,那么如何使用avaScript获取短信验证码呢?今天小编就整理了超详细的攻略,请各位看好~ 二、准备工作 1.注册短信服务提供商 注册并登录你的短信平台,然后获取AppID和AppKey,注册地址在代码里 2.创建验证码模版 三、实现步骤 …...
利用 Python 进行数据分析实验(七)
一、实验目的 使用Python解决问题 二、实验要求 自主编写并运行代码,按照模板要求撰写实验报告 三、实验步骤 操作书上第九章内容请画出如图2.png所示的图形通过编码获得fcity.jpg的手绘图像(如beijing.jpg所示) 四、实验结果 T2 &qu…...
前端小技巧: 写一个异步程序示例, 使用任务队列替代promise和async/await等语法糖
异步程序设定场景 1 )场景设定 可以使用懒人每做几件事,就要休息一会儿,并且不会影响做事的顺序这种场景来模拟定义单例名称为: lazyMan支持 sleep 和 eat 两个方法支持链式调用 2 ) 调用示例 const lm new LazyMan(www) lm.eat(苹果).…...
【Windows下】Eclipse 尝试 Mapreduce 编程
文章目录 配置环境环境准备连接 Hadoop查看 hadoop 文件 导入 Hadoop 包创建 MapReduce 项目测试 Mapreduce 编程代码注意事项常见报错 配置环境 环境准备 本次实验使用的 Hadoop 为 2.7.7 版本,实验可能会用到的文件 百度网盘链接:https://pan.baidu…...
Python---time库
目录 时间获取 时间格式化 程序计时 time库包含三类函数: 时间获取:time() ctime() gmtime() 时间格式化:strtime() strptime() 程序计时:sleep() perf_counter() 下面逐一介绍&#…...
unity 自由框选截图(两种方法,亲测有效)
提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、第一种方法(1)简介GL(2) GL 用法:(3)具体代码 二、第二种方法第一步:第二步第三…...
项目代码规范
editorconfig EditorConfig 是一种用于统一不同编辑器和 IDE 的代码风格的文件格式和插件,帮助开发人员在不同的编辑器和 IDE 中保持一致的代码风格,从而提高代码的可读性和可维护性 # EditorConfig is awesome: https://EditorConfig.org root true[…...
STM32的BKP与RTC简介
芯片的供电引脚 引脚表橙色的是芯片的供电引脚,其中VSS/VDD是芯片内部数字部分的供电,VSSA/VDDA是芯片内部模拟部分的供电,这4组以VDD开头的供电都是系统的主电源,正常使用时,全部都要接3.3V的电源上,VBAT是…...
11.Java安卓程序设计-基于SSM框架的Android平台健康管理系统的设计与实现
摘要 随着人们生活水平的提高和健康意识的增强,健康管理系统在日常生活中扮演着越来越重要的角色。本研究旨在设计并实现一款基于SSM框架的Android平台健康管理系统,为用户提供全面的健康监测和管理服务。 在需求分析阶段,我们明确了系统的…...
jetbrains卡顿(Pycharm等全家桶)终极解决方案,肯定解决!非常肯定!
话越短,越有用,一共四种方案,肯定能解决!!!非常肯定!! 下面四种解决方案,笔者按照实际体验后的结果,按照优先级从高到低排序。你只要按顺序试试就知道了。 m…...
c++的排序算法
一:merge 是 C STL 中的一个算法函数,用于将两个已排序的序列合并成一个有序序列。 template<class InputIterator1, class InputIterator2, class OutputIterator, class Compare> OutputIterator merge(InputIterator1 first1, InputIterator1 …...
YOLOv5独家原创改进:SPPF自研创新 | SPPF与感知大内核卷积UniRepLK结合,大kernel+非膨胀卷积提升感受野
💡💡💡本文自研创新改进:SPPF与感知大内核卷积UniRepLK结合,大kernel+非膨胀卷积,使SPPF增加大kernel,提升感受野,最终提升检测精度 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),…...
【C/PTA —— 15.结构体2(课外实践)】
C/PTA —— 15.结构体2(课外实践) 7-1 一帮一7-2 考试座位号7-3 新键表输出7-4 可怕的素质7-5 找出同龄者7-6 排队7-7 军训 7-1 一帮一 #include<stdio.h> #include<string.h>struct student {int a;char name[20]; };struct student1 {int …...
艾泊宇产品战略:适应新消费时代,产品战略指南以应对市场挑战和提升盈利
赚钱越来越难,这是许多企业和个人都感到困惑的问题。 然而,艾泊宇产品战略告诉大家,我们不能把这个问题简单地归咎于经济环境或市场竞争,而是需要从更深层次去思考和解决。 本文将从多个角度去剖析这个问题,并探讨在…...
使用autodl服务器,两个3090显卡上运行, Yi-34B-Chat-int4模型,并使用vllm优化加速,显存占用42G,速度23 words/s
1,演示视频地址 https://www.bilibili.com/video/BV1Hu4y1L7BH/ 使用autodl服务器,两个3090显卡上运行, Yi-34B-Chat-int4模型,用vllm优化,增加 --num-gpu 2,速度23 words/s 2,使用3090显卡 和…...
ORACLE数据库实验总集 实验六 SQL 语句应用
一、 实验目的 (1) 掌握数据的插入(INSERT)、 修改(UPDATE) 和删除(DELETE) 操作。 (2) 掌握不同类型的数据查询(SELECT) 操作。 二、…...
[FPGA 学习记录] 快速开发的法宝——IP核
快速开发的法宝——IP核 文章目录 1 IP 核是什么2 为什么要使用 IP 核3 IP 核的存在形式4 IP 核的缺点5 Quartus II 软件下 IP 核的调用6 Altera IP 核的分类 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为…...
每日一题:LeetCode-11.盛水最多的容器
每日一题系列(day 13) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🔎…...
查看电脑cuda版本
1.找到NVODIA控制面板 输入NVIDIA搜索即可 出现NVIDIA控制面板 点击系统信息 2.WINR 输入nvidia-smi 检查了一下,电脑没用过GPU,连驱动都没有 所以,装驱动…… 选版本,下载 下载后双击打开安装 重新输入nvidia-smi 显示如下…...
OpenClaw新手避坑指南:nanobot部署5大常见配置错误
OpenClaw新手避坑指南:nanobot部署5大常见配置错误 1. 为什么需要这份避坑指南 上周我在本地部署OpenClaw的nanobot时,经历了整整两天的痛苦调试。明明按照文档一步步操作,却总是卡在奇怪的错误上。最崩溃的是,有些问题在官方文…...
格式排版改到崩溃?高校教授说用这几个AI论文写作工具
论文写作总让人头大?格式排版改到崩溃、文献检索效率低、逻辑结构不清晰……这些痛点你是不是也遇到过?其实,只要用对 AI 工具、走对流程,就能事半功倍。资深教授建议,从选题到降重,全程使用专业工具辅助&a…...
CogVideoX-2b CSDN专用版:5分钟部署你的本地AI视频导演
CogVideoX-2b CSDN专用版:5分钟部署你的本地AI视频导演 1. 从想法到画面,只差一个启动按钮 想象一下这样的场景:你脑子里闪过一个绝妙的视频创意——也许是“一只戴着宇航员头盔的柴犬在月球表面蹦跳”,也许是“赛博朋克都市的雨…...
Ryzen平台硬件调试终极指南:从问题诊断到系统优化的实战路径
Ryzen平台硬件调试终极指南:从问题诊断到系统优化的实战路径 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...
MOOTDX:Python通达信数据接口解决方案
MOOTDX:Python通达信数据接口解决方案 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资领域,数据获取与处理始终是从业者面临的核心挑战。个人投资者常常困于复杂…...
Fish Speech 1.5保姆级教程:零代码实现Markdown文档转语音
Fish Speech 1.5保姆级教程:零代码实现Markdown文档转语音 1. 为什么选择Fish Speech 1.5? 在日常工作中,我们经常需要处理大量Markdown格式的技术文档。传统的文本转语音工具往往存在几个痛点:声音机械生硬、无法处理Markdown特…...
5分钟搞定!用DeePseek+PS批量修图(附JSX脚本生成技巧)
5分钟搞定!用DeePseekPS批量修图(附JSX脚本生成技巧) 每次处理上百张产品图时,最头疼的就是重复调整尺寸、统一分辨率这些机械操作?作为电商运营,我经历过无数次深夜加班修图的痛苦,直到发现这个…...
YOLOv9镜像快速上手:一行命令跑通推理,小白也能玩转目标检测
YOLOv9镜像快速上手:一行命令跑通推理,小白也能玩转目标检测 1. 为什么选择YOLOv9镜像 目标检测作为计算机视觉的核心任务,在安防监控、自动驾驶、工业质检等领域有着广泛应用。而YOLO系列模型以其速度快、精度高的特点,成为该领…...
告别数据迷宫:手把手教你用DataHub搭建企业级元数据搜索中心(支持MySQL/Airflow/Superset)
告别数据迷宫:手把手教你用DataHub搭建企业级元数据搜索中心(支持MySQL/Airflow/Superset) 当数据资产像野草一样在组织内疯长时,工程师们常常发现自己被困在由数百个数据表、数十个BI看板和错综复杂的调度任务构成的迷宫中。上周…...
手把手教你部署GLM-4v-9B:9B参数多模态模型,单卡就能跑
手把手教你部署GLM-4v-9B:9B参数多模态模型,单卡就能跑 1. GLM-4v-9B模型简介 GLM-4v-9B是智谱AI于2024年开源的多模态大模型,具有以下核心特点: 参数规模:90亿参数,单张24GB显存的显卡即可运行多模态能…...
