【算法题】求旋转数组的中位数

public class findNumInRotateArr {

    public static double minNumberInRotateArray(int[] nums) {
        if (nums == null || nums.length == 0) {
            return 0;
        }
        int left = 0;
        int right = nums.length - 1;
        while (left < right) {
            int mid = left + ((right - left) >> 1);
            if (nums[mid] < nums[right]) {
                right = mid;
            } else if (nums[mid] > nums[right]) {
                left = mid + 1;
            } else {
                right--;
            }
        }
        int size = nums.length;
        if (size % 2 == 1) {
            return nums[(left + size / 2) % size];
        } else {
            return (double) (nums[(left + size / 2) % size] + nums[(left + (size - 1) / 2) % size]) / 2;
        }
    }

    public static void main(String[] args) {
        int[] arr = {6, 7, 8, 1, 2, 3, 4, 5};
        System.out.println(minNumberInRotateArray(arr));
    }
}


全部评论
lc153先确定最小值的位置,然后再求中位数感觉应该可行
1 回复 分享
发布于 2020-01-02 11:48
二分思路,一个月前看答案做的,细节我自己也没抠太清楚 ```python class Solution:     def findMin(self, nums: List[int]) -> int:         if not nums: return None         l,r = 0,len(nums)-1         while l + 1 < r:             mid = (l + r) >> 1             # 第一种情况 左<中<右,说明区间内已经不含旋转点             if nums[l] < nums[mid] < nums[r]:                 r = mid             else:                 # 否则,区间内含有旋转点,需比较mid和left的关系                 if nums[mid] < nums[l]:                     r = mid                 else:                     l = mid         return min(nums[l],nums[r]) ```
点赞 回复 分享
发布于 2020-01-02 14:52

相关推荐

02-22 20:28
重庆大学 Java
程序员牛肉:首先不要焦虑,你肯定是有希望的。 首先我觉得你得好好想一想自己想要什么。找不到开发岗就一定是失败的吗?那开发岗的35岁危机怎么说?因此无论是找工作还是考公我觉得你都需要慎重的想一想。但你一定要避开这样一个误区:“我是因为找不到工作所以不得不选择考公”。 千万不要这么想。你这个学历挺好的了,因此你投后端岗肯定是有面试机会的。有多少人简历写的再牛逼,直接连机筛简历都过不去有啥用?因此你先保持自信一点。 以你现在的水平的话,其实如果想要找到暑期实习就两个月:一个月做项目+深挖,并且不断的背八股。只要自己辛苦一点,五月份之前肯定是可以找到暑期实习的,你有点太过于高看大家之间的技术差距了。不要焦虑不要焦虑。 除此之外说回你这个简历内容的话,基本可以全丢了。如果想做后端,先踏踏实实做两个项目再说+背八股再说。如果想考公,那就直接备战考公。 但是但是就像我前面说的:你考公的理由可以是因为想追求稳定,想追求轻松。但唯独不能是因为觉得自己找不到工作。不能这么小瞧自己和自己的学历。
点赞 评论 收藏
分享
暮雨轻歌:看起来hr不能接受我菜查看图片
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客企业服务