高级农民
 
- 积分
- 1245
- 学分
- 个
- 大米
- 升
- 人参
- 枚
- 水井
- 尺
- 小麦
- 颗
- 萝卜
- 根
- 小米
- 粒
- UID
- 70898
- 注册时间
- 2012-10-13
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 好友
- 收听
- 听众
- 日志
- 相册
- 帖子
- 主题
- 分享
- 精华
|
我感觉行得通的一种解法,就是规定范围:
public static boolean preorderJudge(int[] array){. more info on 1point3acres.com
if (array == null || array.length < 1){
return false;
}
return helper(array, 0, array.length - 1, Integer.MIN_VALUE, Integer.MAX_VALUE);
}
private static boolean helper(int[] array, int start, int end, int min, int max){
if (start > end){
return true;
}
if (start == end){
return array[start] > min && array[start] < max;
}
int root = array[start], i = start + 1;
for (; i <= end; i++){
if (array[i] > root){. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
break;
}
}
i -= 1;
return helper(array, start + 1, i, min, root) && helper(array, i + 1, end, root, max);
} |
|