1.二分查找:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
方法一:类二分法 二分法与此类似,添加一个mid值来进行比较
思路:1.判断第一个与最后一个数是否与target相等
2.若第一个数小于target
3.若最后一个数大于target
4.数组中找不到与target对应的数
代码:
方法二:
思路:直接使用indexOf()方法
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。
代码:
2.第一个错误版本:
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。
假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。
方法:二分法
思路:1.设立一个mid值,判断isBadVersion(mid)
2.如果为true,右边的值=mid-1,继续判断直到为false
3.如果为false,左边的值=mid+1
代码:
3.搜索插入位置:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置
方法一:遍历
思路:遍历所有的数并判断target与其的大小
代码:
方法二:二分查找
代码: