LintCode刷题--三角形技术
来源:互联网 发布:传奇数据库 编辑:程序博客网 时间:2024/06/01 08:53
题目如下:
给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
样例
例如,给定数组 S = {3,4,6,7}
,返回 3
其中我们可以找到的三个三角形为:
{3,4,6}{3,6,7}{4,6,7}
读了一遍题目的后的思路:
先确定两条边,根据第三条边不大于两边只和 且 不小于两边只差的原理 搜索第三条边
最短边 i=0;i<S.count-1;i++
最长边 j=i+2;j<S.count;j++
第三条边考虑到时间问题 使用二分法查找
int triangleCount(vector<int> &S) { // write your code here int sum = 0; int n = S.size(); sort(S.begin(), S.end()); for(int i=0;i<n;i++) { for(int j=i+2;j<n;j++) { int st=i+1; int end=j; //二分法查找中间边 0 i+2 i i+3 while(st<end) { int mid=(st+end)/2; if(S[mid]>(S[j]-S[i])) end=mid; else { st++; } } sum+=(j-st); } } return sum; }
阅读全文
0 0
- LintCode刷题--三角形技术
- LintCode刷题——数字三角形
- LintCode-三角形计数
- LintCode Triangle 数字三角形
- lintcode-数字三角形-109
- lintcode ----数字三角形
- lintcode triangle 数字三角形
- lintcode(382)三角形计数
- lintcode 三角形计数
- 数字三角形-LintCode
- LintCode之三角形计数
- Lintcode三角形计数
- lintcode--数字三角形
- LintCode 三角形计数
- 三角形计数-LintCode
- Lintcode 109.数学三角形
- 数字三角形-LintCode
- LintCode 数字三角形
- 【期望DP】LibreOJ6178(美团 CodeM 初赛 Round B)[景区路线规划]题解
- java 静态初始化集合
- 第六周的学习
- Kotlin基础学习(1)
- CY3684 68013开发套件安装指南
- LintCode刷题--三角形技术
- 给磁盘文件排序(位图)
- Apache主配置文件httpd.conf 详解
- 【Spring】Spring+Struts2+Hibernate3知识点
- 支付工具类
- 编译安装LAMP部署Wordpress搭建个人博客
- Linux 的>和>>
- QSS样式表的使用
- 《大话设计模式》——学习笔记之"行为型模式"(观察者&模板方法&命令&状态&职责链&解释器&中介者&访问者&策略&备忘录&迭代器)