import java.util.ArrayList;
import java.util.List;
public class lzwCode {
/**
* 一个整数的数组例如int a[]={21,11,45,56,9,66,77,89,78,68,100,120,111}
* 查询数组中有没有比它前面元素都大,比它后面的元素都小的数,没有打印-1,有显示其索引
*/
public static void main(String[] args) {
int [] array = {21,11,45,56,9,66,77,89,78,68,100,120,111};
List<Integer> result = findCount(array);
for (Integer num:result) {
System.out.println(num);
}
}
public static List<Integer> findCount(int [] array) {
List<Integer> list = new ArrayList<Integer>();
for (int i=0; i<array.length; i++) {
boolean isSmall = true;
boolean isBig = true;
int currentNumber = array[i];
//比前面数大
for (int j=0; j<i; j++) {
if (currentNumber < array[j]) {
isSmall = false;
break;
}
}
//比后面数小
for (int z=i+1; z<array.length; z++) {
if (currentNumber > array[z]) {
isBig = false;
break;
}
}
//添加符合条件的数
if (isSmall && isBig) {
list.add(currentNumber);
}
}
//没有符合条件的数就增加-1
if (list.size() < 1)
list.add(-1);
return list;
}
}
控制台结果:
66
100