哈尼梯田·分水寻峰(分治)【题目描述】哈尼族梯田灌水后,每块田的水位高度(整数)排列成一个数组。为了修建分水闸,需要找到任意一个“水位峰值”——即该位置的水位大于其相邻左右田的水位(边界位置只需大于一个邻位)。请你用分治算法(类似二分查找峰值)实现函数 find_peak(arr),返回任意一个峰值所在的下标(0-based)。假设 arr 的长度 ≥ 1,且相邻水位不相等。【输入格式】第一行:整数 n(1 ≤ n ≤ 1000)第二行:n 个整数,表示水位高度【输出格式】一个整数,峰值下标
正确答案:参考程序(Python):def find_peak(arr,l,r):if l==r:return l;mid=(l+r)//2;if arr[mid]>arr[mid+1]:return find_peak(arr,l,mid);return find_peak(arr,mid+1,r);n=int(input());a=list(map(int,input().split()));print(find_peak(a,0,n-1))。核心:二分找峰值。
试卷来源:2026信息素养大赛智传民韵Python小高组(小学4-6年级_复赛)模拟卷(三)