算法题目三:判断数组中任意三条边能否组成一个三角形,若能返回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;
}
}
算法二:正确率,算法效率均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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树