三角形计数
来源:互联网 发布:ubuntu telnet 命令 编辑:程序博客网 时间:2024/05/29 04:12
给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
样例
例如,给定数组 S = {3,4,6,7},返回 3
其中我们可以找到的三个三角形为:
{3,4,6}
{3,6,7}
{4,6,7}
给定数组 S = {4,4,4,4}, 返回 4
其中我们可以找到的三个三角形为:
{4(1),4(2),4(3)}
{4(1),4(2),4(4)}
{4(1),4(3),4(4)}
样例
例如,给定数组 S = {3,4,6,7},返回 3
其中我们可以找到的三个三角形为:
{3,4,6}
{3,6,7}
{4,6,7}
给定数组 S = {4,4,4,4}, 返回 4
其中我们可以找到的三个三角形为:
{4(1),4(2),4(3)}
{4(1),4(2),4(4)}
{4(1),4(3),4(4)}
{4(2),4(3),4(4)}
import java.util.ArrayList;import java.util.Scanner;/** * 给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?样例例如,给定数组 S = {3,4,6,7},返回 3其中我们可以找到的三个三角形为:{3,4,6}{3,6,7}{4,6,7}给定数组 S = {4,4,4,4}, 返回 4其中我们可以找到的三个三角形为:{4(1),4(2),4(3)}{4(1),4(2),4(4)}{4(1),4(3),4(4)}{4(2),4(3),4(4)} * * @author Dell * */public abstract class Test382 { public static int triangleCount(int[]S) { int sum=0; ArrayList<Integer> list=new ArrayList<>();ArrayList<ArrayList<Integer>> result=new ArrayList<>();backtracking(S,0,0,list,result);for(int i=0;i<result.size();i++){if(istriangle(result.get(i),S)){sum++;}}return sum; } public static boolean istriangle(ArrayList<Integer> list,int[] S) { boolean flag=false; int a=S[list.get(0)]; int b=S[list.get(1)]; int c=S[list.get(2)]; if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a&&a-b<c&&a-c<b&&b-c<a) { flag=true; } return flag; }public static void backtracking(int[]a, int start, int k,ArrayList<Integer> list, ArrayList<ArrayList<Integer>> result){if(k==3)result.add(new ArrayList<>(list));else{for(int i=start;i<a.length;i++){list.add(i);backtracking(a,i+1,k+1,list,result);list.remove(list.size()-1);}}}public static int triangleCount1(int[]S){ int sum=0;for(int i=0;i<S.length;i++){for(int j=i+1;j<S.length;j++){for(int k=j+1;k<S.length;k++){if(S[i]>0&&S[j]>0&&S[k]>0&&S[i]+S[j]>S[k]&&S[i]+S[k]>S[j]&&S[j]+S[k]>S[i]&&S[i]-S[j]<S[k]&&S[j]-S[k]<S[i]&&S[i]-S[k]<S[j]){sum++;}}}} return sum;}public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int[] a=new int[n];for(int i=0;i<a.length;i++){a[i]=sc.nextInt();} //System.out.println(triangleCount(a));System.out.println(triangleCount1(a));}}
阅读全文
0 0
- 三角形计数
- 三角形计数
- LintCode-三角形计数
- TriangleCount三角形计数
- lintcode(382)三角形计数
- Java实现-三角形计数
- lintcode 三角形计数
- LintCode之三角形计数
- Lintcode三角形计数
- LintCode 三角形计数
- 三角形计数-LintCode
- Lintcode 382 三角形计数
- 382. 三角形计数
- 382. 三角形计数 [LintCode]
- Lintcode 382. 三角形计数
- uva11404(数论_三角形计数)
- [组合计数] BZOJ 3505 [Cqoi2014]数三角形
- 数学,计数(数三角形,uva 11401)
- spring-http-Hessian-rpc示范
- 微信小程序制作心得和体会
- java-Collections
- Java工程师成神之路
- tensorflow的安装
- 三角形计数
- elasticsearch 中文分词器讲解
- 设计模式之装饰器
- 抽象工厂模式
- 一个android debug技巧
- ssm框架整合shiro框架未验证前filterChainDefinitions配置问题
- 函数模板与类模板
- Asp.net MVC中的ViewData与ViewBag
- 关于安装完MyEclipse之后的一系列配置操作