package com.interview.datastructure;
import java.util.Arrays;
public class MinAbsoluteValue {
public static void main(String[] args) {
int array[] = {-3, -2, -1, 1, 7, 9, 11};
int min = Min(array);
System.out.println(min);
}
public static int Min(int array[]) {
int len = array.length - 1;
//全部都是大于0的
if (array[0] >= 0) {
return array[0];
}
//全部都是小于0的
else if (array[len - 1] <= 0) {
return array[len - 1];
}
//数组中是有大于0也有小于0的 需要先找到正数与负数交界的地方
else {
int mid = 0;
while (mid < len - 1) {
mid = mid + (len - mid) / 2;
if (array[mid] == 0) {
return array[mid];
} else if (array[mid] > 0) {
if (array[mid - 1] == 0)
return 0;
else if (array[mid - 1] < 0) {
if (Math.abs(array[mid]) < Math.abs(array[mid - 1])) {
return Math.abs(array[mid]);
} else
return Math.abs(array[mid - 1]);
}
} else {
if (array[mid + 1] == 0)
return 0;
else if (array[mid - 1] > 0) {
if (Math.abs(array[mid]) < Math.abs(array[mid - 1])) {
return Math.abs(array[mid]);
} else
return Math.abs(array[mid - 1]);
}
}
}
}
return 0;
}
}
package com.interview.datastructure;
import java.util.Arrays;
public class MinAbsoluteValue {
public static void main(String[] args) {
int array[] = {-3, -3, -3};
int min = Min(array);
System.out.println(min);
}
public static int Min(int array[]) {
if (array.length == 0)
return Integer.MIN_VALUE;
int len = array.length - 1;
if (len < 1)
return Math.abs(array[0]);
//全部都是大于0的
if (array[0] >= 0) {
return Math.abs(array[0]);
}
//全部都是小于0的
else if (array[len - 1] <= 0) {
return Math.abs(array[len - 1]);
}
//数组中是有大于0也有小于0的 需要先找到正数与负数交界的地方
else {
int mid = 0;
while (mid < len - 1) {
mid = mid + (len - mid) / 2;
if (array[mid] == 0) {
return 0;
} else if (array[mid] > 0) {
if (array[mid - 1] == 0)
return 0;
else if (array[mid - 1] < 0) {
if (Math.abs(array[mid]) < Math.abs(array[mid - 1])) {
return Math.abs(array[mid]);
} else
return Math.abs(array[mid - 1]);
}
} else {
if (array[mid + 1] == 0)
return 0;
else if (array[mid - 1] > 0) {
if (Math.abs(array[mid]) < Math.abs(array[mid - 1])) {
return Math.abs(array[mid]);
} else
return Math.abs(array[mid - 1]);
}
}
}
}
return 0;
}}