题解 | #旋转数组的最小数字#

旋转数组的最小数字

https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param numsLen int nums数组长度
 * @return int整型
 */
int minNumberInRotateArray(int* nums, int numsLen ) {
    // write code here
    return findminNumberInRotateArray(nums, 0, numsLen - 1);
}
// 1 2 3 4 5
// 3 4 5 1 2


// 5 1 2 5 5 5 5 5 5
// 0 1 2 3 4 5 6 7 8
// left = 0, right = 8
// mid = 4
int findminNumberInRotateArray(int* nums, int left, int right) {
    if(left == right) return nums[left];
    int mid = left + (right - left) / 2;
    if(nums[mid] > nums[right]) {
        return findminNumberInRotateArray(nums, mid + 1, right);
    } else if(nums[mid] == nums[right]) {
        return findminNumberInRotateArray(nums, left, right - 1);
        // 4 4 4 3 4
        // 4 3 4 4 4
    }
        // 5 5 1 2 3
    return findminNumberInRotateArray(nums, left, mid);
}

全部评论

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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