尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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; }
RELATED

相关推荐

5分钟快速上手:Unity游戏翻译神器XUnity.AutoTranslator完全攻略

5分钟快速上手:Unity游戏翻译神器XUnity.AutoTranslator完全攻略

5分钟快速上手:Unity游戏翻译神器XUnity.AutoTranslator完全攻略 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语Unity游戏而烦恼吗?XUnity.AutoTranslator正是你需要的…

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

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

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

📅 2026/10/21 10:21:40
ESXi7.0升级8.0后存储vMotion失败 incompatible‑CPU排错完整指南

ESXi7.0升级8.0后存储vMotion失败 incompatible‑CPU排错完整指南

集群部分主机由ESXi7.0升级至8.0后,跨7.0与8.0主机执行Storage vMotion(存储vMotion)时报错incompatible CPU。很多运维误以为只有在线vMotion才校验CPU功能集,实际上Storage vMotion冷迁移之外也会校验虚拟机CPU掩码。根源来自ES…

📅 2026/10/21 15:10:45
MORE NEWS

更多资讯

📰

Claude Code初体验:AI编程Agent实战全记录

前阵子第一次正经用 Claude Code 写了一个小功能,说实话,之前我对这类终端里的 AI Agent 工具一直持观望态度,总觉得是“玩具”,不如自己手写来得快。但这次完整走了一遍从需求拆分、代码生成、调试到落地的流程,确实改…

📰

毫米波雷达无线感知:从FMCW原始数据到微动特征工程实战

简介:本资源是一套面向高校毕业设计与毫米波雷达智能感知研究者的完整算法实现方案,聚焦解决智能家居场景下无线感知模型精度低、泛化性差的共性问题。作者提出解耦特征提取与任务输出的新型系统架构,创新性改造Detection Transformer模型以适…

📰

订单CSV导出功能开发实践:从需求评审到代码评审的完整记录

我花了大概一个星期熟悉团队代码库,终于在今天早上接到了第一个真正"落地"的任务——给内部运营后台的订单列表页加一个数据导出功能。需求本身不复杂:页面上有个"导出CSV"按钮,点击后后端生成最近30天的订单数据&#x…

📰

JavaManus:从零实现轻量级Java Agent框架,让大模型无缝接入Spring Boot微服务

都说 2025 年是 AI Agent 元年,各种框架层出不穷。我的一位老同事前段时间接了个内部项目,要在一套成熟的 Java 微服务体系里嵌入一个能自主完成多步任务的 AI 助手,选型时发现市面上的 Agent 框架要么重、要么绑定特定大模型服务商&#xff…

📰

Capsolver API接入实战:验证码识别与Selenium自动化集成指南

验证码识别这个领域,这两年被AI带到了一个完全不同的高度。提起Capsolver,做过自动化测试或者爬虫工程的人应该不陌生——它是一个以API为中心的验证码识别平台,把深度学习模型对各类验证码的处理能力封装成几个HTTP接口,调用方只…

📰

目标检测入门首选YOLO:环境搭建、数据标注与训练调优完整实战

最近一段时间不止一个朋友来问我目标检测怎么入门,我的回答几乎都是同一个:先拿 YOLO 开刀。原因很简单,这个系列把检测任务压缩成了一个单阶段网络,理论门槛低,工程链路也成熟,更重要的是社区里能直接用的…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬