算法 第四版 1.4.20 双调查找

来源:互联网 发布:淘宝淘词助手官网 编辑:程序博客网 时间:2024/06/16 23:31

题目要求 lgN级别的复杂度

一开始根本想不到,只能想到最简单的遍历 N复杂度

后来收到1.4.18启发,

只要数组局部最大元素只有一个,就说明这是双调数组

复杂度lgN

public static int Pro1_4_20(int[] a, int lo, int hi){ //[lo,hi)if(hi-lo<3) return 0;int mid = lo + (hi-lo)/2;int ans = 0;if(a[mid-1]<a[mid]&&a[mid+1]<a[mid])  ans++;if(mid-2>=0 && a[mid]<a[mid-1]&&a[mid-2]<a[mid-1]) ans++;ans += Pro1_4_20(a, lo, mid) + Pro1_4_20(a, mid, hi);return ans; }


原创粉丝点击