[LeetCode] Valid Triangle Number 合法的三角形个数 (Java)

2023-10-29

题目

Given an array consists of non-negative integers, your task is to count the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle.

  • Example 1:

Input: [2,2,3,4]
Output: 3
Explanation:
Valid combinations are:
2,3,4 (using the first 2)
2,3,4 (using the second 2)
2,2,3

  • Note:

The length of the given array won’t exceed 1000.
The integers in the given array are in the range of [0, 1000].
#分析题目

  • 给了一个数组,问能组成多少个正确的三角形,根据三角形的性质,任意两条边之和要大于第三边。
  • 问题就变成了找出所有这样的三个数字,使得任意两个数字之和都大于第三个数字。那么三个数字中如果较小的两个数字之和大于第三个数字,那么任意两个数字之和都大于第三个数字.
  • 思路是排序之后,从数字末尾开始往前遍历,将left指向首数字,将right之前遍历到的数字的前面一个数字,然后如果left小于right就进行循环,循环里面判断如果left指向的数加上right指向的数大于当前的数字的话,那么right到left之间的数字都可以组成三角形,这相当于此时确定了i和right的位置,可以将left向右移到right的位置,中间经过的数都大于left指向的数,所以都能组成三角形.加完之后,right自减一,即向左移动一位。如果left和right指向的数字之和不大于nums[i],那么left自增1,即向右移动一位.优化时间复杂度到0(n2)(见解法二).

#解法一 Brute Force(Time Limit Exceeded)

  • 时间复杂度O(N3 )
  • 空间复杂度O(1)
    #代码
public class Solution {
    
    public int triangleNumber(int[] nums) {
    
        
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[LeetCode] Valid Triangle Number 合法的三角形个数 (Java) 的相关文章

  • 天龙3d服务器维护,《新天龙八部》2017年3月6日全服更新维护公告

    亲爱的玩家 大家好 为保证游戏运行的稳定性 提升整体服务质量 新天龙八部 游戏全部服务器 部分服务器将提前至5 00维护 具体服务器列表请见公告下方 将于2017年3月6日7 00 9 00进行更新维护 维护后版本号升级为3 61 5303
  • -bash: /usr/bin/yum: No such file or directory解决方案

    删除了yum文件 导致yum命令出现 bash情况 root localhost yum bash usr bin yum No such file or directory 解决方案 http mirrors 163 com centos
  • el-select下拉框:数据回显后,无法重新选中或修改

    选中其他值以后 数据并没有发生改变 且无法选中 解决 给el select 点击事件 change getTeacherId 强制数据刷新 表单同理 input getTeacherId getTeacherId val this next
  • 数据可视化第四章

    比例数据 是根据类别 子类别和群体来进行划分的数据 对于比例 通常想要得到最大值 最小值和总体分布 前两者比较简单 将数据由小到大进行排列 位于两端的分别就是最小值和最大值 数据对比也是比例可视化的一个重要应用 在一个图表中集中反映多个维度
  • 小程序页面滚动穿透

    小程序页面滚动穿透 一 场景 框架 Taro2 Taro3不生效的 在项目当中 基础遇到这样的需求 有一个长列表 或者其他可滚动展示的页面 在这个页面会弹出一个Modal层 如下 贝壳找房的 的筛选栏 二 问题 如果这个弹框内容不可滚动 不
  • java 获取系统 默认编码_Java获取Linux服务器系统默认编码格式

    一 查找java进程 ps ef grep java 二 使用jinfo命令查看java系统参数 jinfo sysprops 进程id Usage jinfo option to connect to running process ji
  • 建立良好人际关系的原则

    1 尊重原则 尊重包括两个方面 自尊和尊重他人 自尊就是在各种场合都要尊重自己 维护自己的尊严 不要自暴自弃 尊重他人就是要尊重别人的生活习惯 兴趣爱好 人格和价值 只有尊重别人才能得到别人的尊重 2 真诚原则 只有诚以待人 胸无城府 才能
  • 【图论——第四讲】dijkstra算法求单源最短路及其堆优化

    o 大家好 欢迎大家光临我的博客 面向阿尼亚学习 算法学习笔记系列持续更新中 文章目录 一 前言 二 朴素dijkstra算法 三 堆优化版dijkstra 最后 一 前言 单源最短路 指的是求一个点 到其他所有点的最短距离 即起点是固定的
  • linux系统中函数库,Linux函数库(静态函数库和动态函数库)及安装过程

    Linux 系统中存在大量的函数库 简单来讲 函数库就是一些函数的集合 每个函数都具有独立的功能且能被外界调用 我们在编写代码时 有些功能根本不需要自己实现 直接调用函数库中的函数即可 需要注意的是 函数库中的函数并不是以源代码的形式存在的
  • 从0到1设计通用数据大屏搭建平台

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • Python 多线程、多进程、协程对迭代数据的耗时操作测试

    Python 多线程 多进程 协程对迭代数据的耗时操作测试 2023 03 29 CPU计算密集型 2 17s p Python中的多线程受GIL制约 因此表面上的并行 实际上是并发 完全的计算密集型任务就和串行的耗时差不多了 Deal 耗
  • 阿里云数据库配置IP白名单操作方法(以MySQL为例)

    阿里云数据库RDS创建成功后 首次连接访问RDS需要配置IP白名单 在阿里云RDS控制台即可配置IP白名单 阿里云百科来详细说下阿里云服务器RDS配置白名单的方法 阿里云服务器配置IP白名单 阿里云百科以MySQL云数据库为例 RDS My
  • vc++常见错误之二:“fatal error C1083: ”无法打开包括文件

    这个问题产生的情况有多种 解决方法也有多种 我集合了网上的各种可能 可能不全 希望对你有用 其一 原文链接 http www cnblogs com txg blog archive 2011 03 07 1974857 html 步骤1
  • Nginx配置详解

    1 基本概念 1 1 Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器 特点是占用内存少 并发能力强 事实上Nginx的并发能力确实在同类型的网页服务器中表现好 Nginx专为性能优化而开发 性能是其最重要的考量 实现上非常
  • SSM网约车管理系统毕业设计源码051630

    摘 要 时代的进步催生了一些事物 网约车便是近年社会发展的衍生物 并且在不长的时间内占领了大批市场 规模的日益扩大 一些负面的东西也开始浮出水面 犹如一颗石子投入水中 涟漪不断扩张 中国有句古话 无规则不成方圆 本文主要是针对网约车管理问题
  • 【python】迷宫游戏小游戏开发(代码+报告)【独一无二】

    博 主 米码收割机 技 能 C Python语言 公众号 测试开发自动化 荣 誉 阿里云博客专家博主 51CTO技术博主 专 注 专注主流机器人 人工智能等相关领域的开发 测试技术 迷宫游戏小游戏开发 代码 报告 目录 迷宫游戏小游戏开发
  • HTML中h标签和p标签,HTML 中 br 和 p 标签的区别是什么?

    HTML 中 br 和 p 标签的区别是什么 在 html 中 br 和 p 标签都可以实现文本的换行效果 那么它们之间有什么区别吗 下面本篇文章就来给大家介绍一下 br 和 p 标签的区别 希望对大家有所帮助 区别 在 HTML 中 br

随机推荐