文档章节

LeetCode(63)-First Bad Version

fengsehng
 fengsehng
发布于 2016/11/09 09:16
字数 256
阅读 0
收藏 0
点赞 0
评论 0

题目:

You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad.

Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.

You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.

思路:

  • 题意:给定1~n个数字代表产品,其中一个产品坏了,后面的全坏,要求检测第一个坏的(提供了函数)
  • 二分法,这里的二分法判断条件比较特殊,当然后面的设置变量要用long,没想明白

代码:

/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */

public class Solution extends VersionControl {
    public int firstBadVersion(int n) {
         long begin = 1;  
        long end = n;  
        if(n<1) return 0;  
        while(begin<end){  
            long mid = (begin+end)/2;  
            if(isBadVersion((int)mid)){  
                end = mid-1;  
            }else{  
                begin = mid+1;  
            }  
        }  
        if(isBadVersion((int)begin)) return (int)begin;  
        return (int)begin+1;  
    }
}

© 著作权归作者所有

共有 人打赏支持
fengsehng
粉丝 4
博文 284
码字总数 214494
作品 0
朝阳
程序员
[LeetCode] First Bad Version

题目 https://leetcode.com/problems/first-bad-version/ You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your ......

u013553529 ⋅ 2017/11/25 ⋅ 0

LeetCode:First Bad Version - 第一个坏版本

1、题目名称 First Bad Version(第一个坏版本) 2、题目地址 https://leetcode.com/problems/first-bad-version/ 3、题目内容 英文: You are a product manager and currently leading a ......

北风其凉 ⋅ 2015/09/13 ⋅ 0

Leetcode日记6

(2015/11/28) LeetCode 303 Range Sum Query - Immutable:(Easy) 1)超时的算法:每次调用sumRange函数进行一次累加运算。 2)不超时的算法:改变数组的内容,存储从0下标到当前下标所有...

fxdhdu ⋅ 2015/11/28 ⋅ 0

Leetcode日记7

(2015/1/2) LeetCode 318 Maximum Product of Word Lengths 题目: 1)求一个字符串数组中,两个不同的字符串的长度乘积的最大值。 2)这两个字符串不能共同拥有同一个字符。(两个字符串的...

fxdhdu ⋅ 2016/01/03 ⋅ 0

决战Leetcode: easy part(51-96)

本博客是个人原创的针对leetcode上的problem的解法,所有solution都基本通过了leetcode的官方Judging,个别未通过的例外情况会在相应部分作特别说明。 欢迎互相交流! email: tomqianmaple@...

qq_32690999 ⋅ 02/09 ⋅ 0

nginx php-fpm 502问题

"NetworkError: 502 Bad Gateway - http://182.92.157.11/piwik/index.php?module=Proxy&action=getNonCoreJs&cb=2996b59669a944623782f63c2f3c5e66" "NetworkError: 502 Bad Gateway - http......

chworld ⋅ 2014/12/22 ⋅ 6

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2) 内核版本 2.6.14 处理器平台 S3C2440 问题 Kernel panic - not syncing: VFS: Unable to mount root fs......

长平狐 ⋅ 2013/06/03 ⋅ 0

LeetCode:Compare Version Numbers - 比较版本号

1、题目名称 Compare Version Numbers(比较版本号) 2、题目地址 https://leetcode.com/problems/compare-version-numbers/ 3、题目内容 英文:Compare two version numbers version1 and ......

北风其凉 ⋅ 2015/09/18 ⋅ 0

Leetcode日记8

(2015/2/3) LeetCode 4 Median of Two Sorted Arrays 题目大意:找到两个已排序数组的median。 median:中间位置的值。 算法: 参考:https://leetcode.com/discuss/15790/share-my-o-log...

fxdhdu ⋅ 2016/02/18 ⋅ 0

阿里云主机挂载硬盘问题

分完区了,也格式化了, 挂载失败啥问题呀,挂载点也是有的,求大伙帮俺看看,谢谢 [root@iZ25gd4gqv6Z ~]# fdisk -l Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/t...

hphper ⋅ 2016/01/05 ⋅ 4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部