def find_median(nums): n = len(nums) if n == 0: return None def quick_select(nums, l, r, k): if l == r: return nums[l] pivot = nums[r] i = l for j in range(l, r): if nums[j] <= pivot: nums[i], nums[j] = nums[j], nums[i] i += 1 nums[i], nums[r] = nums[r], nums[i] if k == i: return nums[k] elif k < i: return quick_select(nums, l, i-1, k) else: return quick_select(nums, i+1, r, k) if n % 2 == 1: return quick_select(nums, 0, n-1, n//2) else: left = quick_select(nums, 0, n-1, n//2-1) right = quick_select(nums, 0, n-1, n//2) return (left + right) / 2
点赞 1

相关推荐

今天 21:31
已编辑
门头沟学院 测试工程师
一笑而过2222:ADB常用命令分类总结: - 设备管理: adb devices (列设备)、 adb connect/disconnect (连接/断开设备) - 文件传输: adb push/pull (本地与设备互传文件) - 应用管理: adb install -r (覆盖安装APK)、 adb uninstall (卸载应用) - 调试与查询: adb logcat (看日志)、 adb shell dumpsys/top/date (系统信息)、 adb shell input (模拟输入)、 adb shell pm list packages (查包名)
点赞 评论 收藏
分享
牛客网
牛客企业服务