题解 | 寻找峰值

寻找峰值

https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param numsLen int nums数组长度
 * @return int整型
 */

   int binary_search(int* nums, int left, int right){
    int mid = (left + right)/2;
    if(left < right){
    if(nums[mid] >= nums[left] && nums[mid] >= nums[right]){  //mid所在值比左右大 
                return mid; 
         }
         else {
      return  binary_search(nums, left, mid-1);      //递归二分查找
      return  binary_search(nums, mid+1, right);
         }
        
    }
     return -1;
   }


int findPeakElement(int* nums, int numsLen ) {
    if(numsLen <= 1){return 0;}               // 其他特殊条件
    if(nums[0] > nums[1]){return 0;} 
    if(nums[numsLen-1] > nums[numsLen-2]){return numsLen-1;}
  return binary_search(nums, 0, numsLen-1);
  

}

#为了求职,我做过的疯狂伪装#
全部评论

相关推荐

八极星:有什么不能问的,(/_\),这又不是多珍贵的机会,你有什么可失去的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-19 14:56
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务