题目标签:Array

  题目给了我们一个 边长的 array, 让我们找出 最大边长和的三角形,当然前提得是这三条边能组成三角形。如果array 里得边长组成不了三角形,返回0。

最直接的理解就是,找到三条最长的边,再判断是不是能够组成三角形,如果不行,继续去找更小得边。

所以维护三个max1,max2,max3,然后利用 “任意两边之和大于第三边” 来判断。

具体看code。

Java Solution:

Runtime beats 99.57%

完成日期:2/11/2019

关键点:“任意两边之和大于第三边”

 class Solution
{
public int largestPerimeter(int[] A)
{
int max1 = -1;
int max2 = -1;
int max3 = -1;
boolean triangleFormed = false;
int prevMax = Integer.MAX_VALUE; do {
max1 = -1;
max2 = -1;
max3 = -1;
// iterate A to get 3 max numbers
for(int max : A)
{
if(max > max1 && max < prevMax)
{
max3 = max2;
max2 = max1;
max1 = max;
}
else if(max > max2 && max < prevMax)
{
max3 = max2;
max2 = max;
}
else if(max > max3 && max < prevMax)
{
max3 = max;
}
} // validate 3 numbers can form triangle
triangleFormed = validateTriangle(max1, max2, max3); if(!triangleFormed)
prevMax = max1; if(max1 < 0 || max2 < 0 || max3 < 0)
return 0; } while(!triangleFormed); return max1 + max2 + max3;
} private boolean validateTriangle(int a, int b, int c)
{
if(a + b <= c)
return false;
else if(b + c <= a)
return false;
else if(c + a <= b)
return false; return true;
}
}

参考资料:N/A

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

LeetCode 976. Largest Perimeter Triangle (三角形的最大周长)的更多相关文章

  1. LeetCode 976 Largest Perimeter Triangle 解题报告

    题目要求 Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero ...

  2. Leetcode976. Largest Perimeter Triangle三角形的最大周长

    给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的.面积不为零的三角形的最大周长. 如果不能形成任何面积不为零的三角形,返回 0. 示例 1: 输入:[2,1,2] 输出:5 示例 2 ...

  3. Leetcode 976. Largest Perimeter Triangle

    送分题 class Solution(object): def largestPerimeter(self, A): """ :type A: List[int] :rt ...

  4. 【Leetcode_easy】976. Largest Perimeter Triangle

    problem 976. Largest Perimeter Triangle solution: class Solution { public: int largestPerimeter(vect ...

  5. 【LeetCode】976. Largest Perimeter Triangle 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序 日期 题目地址:https://leetcod ...

  6. 【leetcode】976. Largest Perimeter Triangle

    题目如下: Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero ...

  7. 976. Largest Perimeter Triangle

    Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero area, ...

  8. 「Leetcode」976. Largest Perimeter Triangle(C++)

    分析 好久不刷题真的思维僵化,要考虑到这样一个结论:如果递增的三个数\(x_i,x_{i+1},x_{i+2}\)不符合题意,那么最大的两边之差一定大于等于第一条边,那么任何比第一条边小的都不能成立. ...

  9. LeetCode 976. 三角形的最大周长(Largest Perimeter Triangle) 33

    976. 三角形的最大周长 976. Largest Perimeter Triangle 题目描述 给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的.面积不为零的三角形的最大周长. ...

随机推荐

  1. 关于ds添加datarow

    有一个dataset DS.如果我想将DS中的某一行复制,得到新的一行,添加到DS中. 可能就会想到:DS.Tables[0].Rows.Add(DS.Tables[0].Rows[i])但是这样程序 ...

  2. margin与padding如何进行区分

    margin与padding如何进行区分,这是很多学html人的困扰,其实说白了padding 就是内容与边框的空隙.而margin则是模块与模块的空隙.[3]

  3. v-bind、v-on、计算属性

    v-bind 缩写 <!-- 完整语法 --> <a v-bind:href="url">...</a> <!-- 缩写 --> & ...

  4. RabbitMQ系列(七)--批量消息和延时消息

    批量消息发送模式 批量消息是指把消息放到一个集合统一进行提交,这种方案设计思路是希望消息在一个会话里,比如放到threadlocal里的集合,拥有相同 的会话ID,带有这次提交信息的size等属性,最 ...

  5. java虚拟机(五)--垃圾回收机制GC5

    什么样的对象需要回收 如果对象已经死亡了,就可以进行回收,判断方式如下 1).引用计数器:给对象添加一个计数器,有地方引用,就+1,当引用失效,就-1.当计数器为0时,判断对象不能再使用,但是当对象相 ...

  6. 09Java Server Pages 错误处理

    Java Server Pages 错误处理 通常JSP在执行的时候,在两个阶段会发生错误.第一个是JSP网页转译成Servlet类的时候,另一个就是Servlet类处理每一个请求的时候.在第一个阶段 ...

  7. HDU多校Round 8

    Solved:2 rank:141 D. Parentheses Matrix n,m有一个小于6的时候是一种构造方法 答案是n + (m - 2) / 2 (n > m) 都大于6的时候 可以 ...

  8. PMP 学习心得

    前两天刚考完 PMP,松了一口气,终于考完了,虽然心里有点慌,不知道自己会不会过.学习 PMP 这三个月还是很充实的.不断的看视频,做题目,功夫不负有心人,也算是学到了一些东西.至少知道了一个项目的启 ...

  9. block的作用

    ios高效开发--blocks相关   1.替换delegate       如果我们有2个viewController,a和b,当我们从a界面push到b后,在b上面触发了一些事件,这些时间又会影响 ...

  10. 大数低速幂运算模板(c++)+python大数幂

    简介 自己从大数加法改过来的模板,低速计算n的t次幂,n,t小于等于100速度能够保证 模板 #include <bits/stdc++.h> using namespace std; s ...