int getMax(int a[],  int left, int right) {     int i = left;     int j = right;     int max = a[i];     if (i == j)         return a[i];     while (i <= j)     {         int mid = (i + j) / 2;         if (mid > i&&mid < j)         {             if (a[mid]>a[mid - 1] && a[mid] > a[mid + 1])                 return a[mid];             else   if (a[mid]>a[mid - 1] && a[mid]<a[mid+1])             {                 i = mid + 1;             }             else  if (a[mid]<a[mid - 1] && a[mid]>a[mid + 1])             {                 j = mid - 1;             }         }         else if (mid == i&&mid == j)         {             return a[mid];         }         else if (mid == i&&mid<j)             return a[mid]>a[j] ? a[mid] : a[j];     } }
点赞 评论

相关推荐

2025-12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务