69 三角形计数(Triangle Count)

发布时间:2026/10/5 8:42:32

69 三角形计数(Triangle Count) 文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目三角形计数Triangle Count描述给定一个整数数组在该数组中寻找三个数分别代表三角形三条边的长度问可以寻找到多少组这样的三个数来组成三角形lintcode题号——382难度——medium样例1输入: [3, 4, 6, 7] 输出: 3 解释: 可以组成的是 (3, 4, 6), (3, 6, 7), (4, 6, 7)样例2输入: [4, 4, 4, 4] 输出: 4 解释:任何三个数都可以构成三角形所以答案为 C(3, 4) 42 解决方案2.1 思路首先三条边在满足abc的前提下只要满足abc即可构成三角形这样我们先对数组进行排序使得按照位置取出来的三个数能够满足abc将c通过循环进行遍历固定再在c位置之前的子数组中找到和的值大于c的两个数即可。2.2 时间复杂度排序的时间复杂度O(n * log n)外层循环的时间复杂度为O(n)在子数组找两数和大于目标值的数的时间复杂度为O(n)总时间复杂度为O(n^2)。2.3 空间复杂度空间复杂度为O(1)。3 源码细节形成三角形的三边条件为(abc abc)即可。先进行排序让有序取出的abc满足abc再固定c去判断abc下标遍历固定c再two sum之前的区间若ab比c大则b不动a右移的所有ab都大于c加入结果之后b左移进行下一轮若ab比c小则需要a左移进行下一轮C版本/** * param S: A list of integers * return: An integer */ int triangleCount(vectorint S) { // write your code here int result 0; if (S.empty()) { return result; } // 先排序确保三个数的大小 abc sort(S.begin(), S.end()); // 固定c的位置 for (int i 2; i S.size(); i) { int target S.at(i); int temp twoSumGreater(S, 0, i - 1, target); // 找到子数组中令两数和大于目标值的结果个数 result temp; } return result; } // left指向aright指向b找到令 abc 的结果 int twoSumGreater(vectorint S, int left, int right, int target) { int result 0; while (left right) { if (S.at(left) S.at(right) target) { left; } else if(S.at(left) S.at(right) target) { result result (right - left); // 直接将left左移的所有结果加入 right--; } } return result; }
延伸阅读

更多相关文章

2026/9/30 20:58:29

网安面试最大骗局:会漏洞复现 ≠ 能上岗,90%新人卡死在这里

一、为什么你靶场满分、漏洞全会,面试依旧挂?很多新人困惑一个问题:我刷完所有靶场、主流漏洞都会复现、工具熟练,为什么面试一问就废,始终拿不到offer?因为行业有一个最大隐形骗局:很多教程让你…

2026/10/1 22:22:42

第10章:权限控制与图像报表-02-图形报表(全)

2. 图形报表ECharts 2.1 ECharts简介 ECharts缩写来自Enterprise Charts,商业级数据图表,是百度的一个开源的使用JavaScript实现的数据可视化工具,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/1…

2026/10/5 8:42:30

本地AI智能体工程实战:从零搭建可调试、可部署的Agent系统

1. 这不是“AI课”,而是一份能直接跑起来的智能体工程手册你点开这个标题,大概率是被“保姆级”“2小时搞懂”“薪资翻一翻”这几个词勾住的——别急,先说清楚:这不是PPT式概念科普,也不是调用几个API就喊“我做了个Ag…

2026/10/5 8:42:30

C语言避坑指南:从环境配置到指针调试的实战经验

我在带新人学C语言的时候,最常听到的一句话是:感觉自己明明看懂了,一运行就哪里都不对。你看热门搜索里那些问题,scanf、指针、鞍点、PAT题目、VSCode配置、缓冲区、gdb调试……每一个单独拿出来都不难,但串在一起就成…

2026/10/5 8:42:30

UniMate实战:统一模型搞定骨骼绑定与动画生成

1. 从 UniMate 说起:一个模型搞定骨骼绑定与动画生成第一次看到 UniMate 这个项目的时候,我正在处理一个角色动画的批量生产任务,手上积压了三十多个不同拓扑结构的角色模型,每个都要单独做骨骼绑定、权重绘制、动画适配。说实话&…

2026/10/5 8:42:30

DeepSeek Harness桌面端深度解析:从安装配置到插件开发与内网部署

1. 从命令行到桌面窗口:DSH 这次到底变了什么DeepSeek Harness 这个工具,圈内人一般直接叫它 DSH。早几个月前它还是个纯命令行工具,你得自己配环境、拉依赖、敲命令,对不熟悉终端操作的人来说门槛不低。官方桌面端出来之后&#…

2026/10/5 8:42:30

MRAM与PIC18F46K20工业数据采集方案:SPI驱动与掉电保护实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 8:37:29

轨道交通视觉检测实战:钢轨裂纹识别与边缘部署

简介:本资源是一份聚焦人工智能前沿技术落地的行业应用分析文档,面向轨道交通领域工程师、计算机视觉初学者及智能交通系统研究者,系统梳理计算机视觉技术在信号控制、线路巡检与运营调度三大核心场景中的实践路径与技术适配方案。全文共87页…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/4 0:01:02

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/4 1:01:05

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑