题目描述

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

假设你有 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. c# 指定打开某个路径下的CMD_(win10下sublime通过配置JSON调用MATLAB直接运行程序)(转载)...
  2. 喂,你连用户模型都不懂还当产品?来,妹纸我手把手教你
  3. 利用WiFi Pineapple Nano渗透客户端获取SHELL
  4. Electron如何调用NodeJS扩展模块
  5. 用宝塔本地搭建php,Windows系统如何使用宝塔面板一键快速搭建本地服务器环境(LNMP/LAMP)...
  6. python将图片原比例缩小_Python实现图片长宽比例缩放和填充
  7. 管家婆财贸双全TOP系列服务器,管家婆财贸双全II
  8. Java编译器 iOS_Java编译器
  9. CRNN论文翻译——中文版
  10. java jshell 命令
  11. java 案例(售卖橙子)
  12. win10锁屏壁纸路径
  13. 中小企业的采购现状,如何打破发展艰难的局面?
  14. 互联网快讯:诺基亚与微软拓展合作;极米Z6X Pro、极米H3S成爆款;美的宣布收购武汉天腾动力
  15. 什么是驻点和拐点_拐点和驻点的区别
  16. 使用光纤熔接机熔接光纤
  17. 和Xiong的一段对话
  18. DDD浮夸,Eric Evans开了个坏头
  19. C语言,指针指针指针
  20. QScrollArea滚动条区域

热门文章

  1. 怎么把video文件改成mp4_如何把视频转换成mp4格式?
  2. golang 相互引用_golang go run undefined 同一个package中函数互相调用的问题
  3. 为什么在反向传播中感知器初始值不能为0_人工智能可以为我们做什么?世界皆可二分类...
  4. 炫界 (587) -(牛一邓丽君音)_50音起源 for mac(日语五十音学习软件)
  5. php 修改 title,WordPress通过functions.php修改meta title样式
  6. java hbase创建_hadoop组件介绍及python 连接Hbase
  7. 交流电流变换器 : SCT1013 特性测试
  8. 智能车竞赛技术报告 | 智能车视觉 - 西南科技大学 - 西科二队
  9. 无线传输系统功率LCC功率补偿系统设计
  10. c++ 三角函数_高中数学:三角函数知识点总结+专项练习,速速查看!