题目描述

你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。

假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。

你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。

示例:

给定 n = 5,并且 version = 4 是第一个错误的版本。调用 isBadVersion(3) -> false
调用 isBadVersion(5) -> true
调用 isBadVersion(4) -> true

所以,4 是第一个错误的版本。

代码实现

// 二分查找变种
/*** Definition for isBadVersion()* * @param {integer} version number* @return {boolean} whether the version is bad* isBadVersion = function(version) {*     ...* };*//*** @param {function} isBadVersion()* @return {function}*/
var solution = function(isBadVersion) {/*** @param {integer} n Total versions* @return {integer} The first bad version*/return function(n) {let l = 1, r = n;while(l <= r) {let mid = l  + Math.floor((r-l)/2);if(isBadVersion(mid))r = mid-1;else l = mid+1;}return l;};
};

【刷算法】LeetCode.278-第一个错误的版本相关推荐

  1. Java实现 LeetCode 278 第一个错误的版本

    278. 第一个错误的版本 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. ...

  2. LeetCode 278. 第一个错误的版本(二分查找)

    1. 题目 你是产品经理,目前正在带领一个团队开发新的产品. 不幸的是,你的产品的最新版本没有通过质量检测. 由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. 假设你有 n ...

  3. Leetcode 278.第一个错误的版本

    Time: 20190909 Type: Easy 题目描述 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错 ...

  4. leetcode 278. 第一个错误的版本(二分)

    题目 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. 假设你有 n 个版本 ...

  5. leetcode 278. 第一个错误的版本(Java版)

    题目 https://leetcode-cn.com/problems/first-bad-version/ 题解 二分查找即可,注意可能会溢出,过程要用 long 类型 /* The isBadVe ...

  6. [刷题]leetcode\278_第一个错误的版本

    python有一个解题思路是把二分查找完的左标尺left和1进行大小比较 class Solution:def firstBadVersion(self, n):""": ...

  7. LeetCode-二分查找-278. 第一个错误的版本

    278. 第一个错误的版本 思路:二分查找法 // The API isBadVersion is defined for you. // bool isBadVersion(int version) ...

  8. 278. 第一个错误的版本

    你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. 假设你有 n 个版本 [1, ...

  9. 文巾解题 278. 第一个错误的版本

    1 题目描述 2 解题思路 二分查找见:二分查找详解_刘文巾的博客-CSDN博客 class Solution(object):def firstBadVersion(self, n):left=1r ...

  10. 力扣 278.第一个错误的版本

    解题思路 二分查找即可 代码 // The API isBadVersion is defined for you. // bool isBadVersion(int version);int fir ...

最新文章

  1. 在SolidWorks 3D CAD中构建乐高直升机
  2. Strategy_Level2
  3. 由浅到深了解工厂模式
  4. 神经网络 | 网络优化-线性神经网络-delta学习规则-梯度下降法(单层感知器-异或问题Python源代码)
  5. python opencv源码_caffegpu源码编译
  6. linux上查看gitlab日志,如何查看Gitlab的版本?
  7. python的datetime模块
  8. ansible(6)——模块命令command、shell详细用法
  9. 第一个MVVM wp7程序
  10. FM1288通过串口配置
  11. 2017 校赛 问题 B: CZJ-Superman
  12. [cocos2dx]斗地主随机发牌界面生成
  13. 角色从项目经理转换ScrumMaster的一些思考和总结
  14. 计算机网络综合布线的发展史,浅析计算机网络综合布线系统设计
  15. matlab截取图像像素,图像中获取图像的像素值
  16. 安卓防止微信调整字体大小
  17. 【Android工具】更新手机流媒体播放器,手机DLNA播放器OPlayer
  18. Unity Shader学习(四)试着绘制一个正方形
  19. robots协议文件的几种写法及示例
  20. html显示隐藏图片,简单的图片显示与隐藏

热门文章

  1. android 中间按钮突出,Android 实现 按钮从两边移到中间动画效果
  2. springcloud 子项目怎么导入_Spring Cloud基础面试题大集合
  3. deepin linux 命令行_ThinkPad E480安装Manjaro-Deepin备忘录
  4. 用于生成随机数的python标准库模块是_17 Python 标准库之 random 模块 - Python 进阶应用教程...
  5. 输电线路巡检机器人PPT_超高压输电线路巡检机器人系统
  6. c++链表形参丢失_LeetCode 例题精讲 | 01 反转链表:如何轻松重构链表
  7. mysql性能优化简书_MySQL性能优化
  8. 参加第十六届智能车竞赛同学提问与回答-6-30
  9. 2021年春季学期-信号与系统-第四次作业参考答案
  10. RASPBERRY 端口(GPIO)基本测试