您的位置:首页 > 编程语言 > Java开发

算法题目三:判断数组中任意三条边能否组成一个三角形,若能返回1,不能返回0

2016-03-06 16:08 851 查看
算法一:正确率90%,算法效率分0%

算法二:正确率,算法效率均100%

public class Triangle {
public static void main(String[] args) {
int[] str = {10,2,5,1,8,20};
System.out.println(solution(str));
System.out.println(solution2(str));
}

//56分 https://codility.com/demo/results/training4X29ZE-2G5/ public static int solution(int[] A){
int length = A.length;
int count = 0;
for(int i = 0; i < length; i ++){
int a = A[i];
for(int j = i + 1; j < length; j ++){
int b = A[j];
for(int z = j + 1; z < length; z ++){
int c = A[z];
if(isTrangle(a,b,c)){
count ++;
}
}
}
}
if(count > 0){
return 1;
}else {
return 0;
}
}
public static boolean isTrangle(int a, int b, int c){
if(a +b > c && a + c > b && b + c > a){
return true;
}else {
return false;
}
}

//100分 https://codility.com/demo/results/training8Y7ZWD-PXD/ public static int solution2(int[] A) {
int length = A.length;
if (A == null || length < 3) {
return 0;
}
Arrays.sort(A);
for (int i = 0; i < length; i++) {
if (A[i] > 0 && A[i] > A[i + 2] - A[i + 1]) {
return 1;
}
}
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法