博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-611-Valid Triangle Number]
阅读量:5887 次
发布时间:2019-06-19

本文共 905 字,大约阅读时间需要 3 分钟。

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: 3Explanation:Valid combinations are: 2,3,4 (using the first 2)2,3,4 (using the second 2)2,2,3

 

Note:

  1. The length of the given array won't exceed 1000.
  2. The integers in the given array are in the range of [0, 1000].

思路:

首先将数组排序。依次取出前两个边的长度。第三条边长度小于前两个边的和。

查找第三条边用二分查找。

int triangleNumber(vector
& a) { int i,j,k,n,left,right,mid,ans,sum; ans=0; sort(a.begin(),a.end()); n=a.size(); for (i=0;i
1) { mid=(left+right)/2; if (a[mid]>=sum) right=mid; else left=mid; } ans+=left-j; } return ans; }

参考:

转载于:https://www.cnblogs.com/hellowooorld/p/6984836.html

你可能感兴趣的文章
v4l2驱动文档之——streaming IO【转】
查看>>
Java初学总结
查看>>
Android开发之旅:环境搭建及HelloWorld
查看>>
C# 中重用c/c++旧模块
查看>>
关于SWT/JFace中其他常用的事件
查看>>
JAVA中写时复制(Copy-On-Write)Map实现
查看>>
SQL Server 存储过程生成insert语句
查看>>
算法——字符串匹配算法自己有限的驾驶机器
查看>>
紧张的学习
查看>>
对一个正整数n,求出n!中末尾0的个数。
查看>>
Android中Services之异步IntentService
查看>>
Linux学习总结—缺页中断和交换技术【转】
查看>>
运用反射实现多层和多数据库开发
查看>>
银河台的文字语言转换自动广播做的不错啊
查看>>
jQuery打造智能提示插件
查看>>
操作系统常识相关
查看>>
蓝牙HID协议笔记【转】
查看>>
Linux 创建子进程执行任务
查看>>
Java8-Stream-No.02
查看>>
iOS开发-UITextView实现PlaceHolder的方式
查看>>