基础班 lintcode458- Last Position of Target- easy

在这里插入图片描述

111 start=1 end=1
(start+end)/2 两者都很大时候可能
java里面计算结果会偏左 (0+1)/2=0
如果mid 是了 我还想知道,会不会还有,
mid+1到end 万一中间这个就是最后一个

注意找的是最后一个target

所以只能挪到mid
很容易出现死循环 mid偏左 111 没有动过位置

因此结束条件只能写成 start+1<end 中间还有两个数
就是缩小到 肉眼可以判断的个数
Find the last position of a target number in a sorted array. Return -1 if target does not exist.

Example
Given [1, 2, 2, 4, 5, 5].

For target = 2, return 2.

For target = 5, return 5.

For target = 6, return -1.

用二分法模板,缩范围时想一下怎么保证当前的数字不会被丢掉就好了。

其实就是因为这种要找最后一个第一个的题目才产生这种模板的。要最后一个所以逼着改指针不写= mid - 1写= mid,所以while条件不写start < end写start + 1 < endÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值