当前位置: 首页 > wzjs >正文

陕西企业网站建设哪家好查询网站信息

陕西企业网站建设哪家好,查询网站信息,企业手机版网站,古镇做灯饰网站的公司背景: 在写力扣题目“搜素插入位置 ”时,发现二分法的一个细节点,打算记录下来,先看一张图: 我们知道,排序数组,更高效的是二分查找法~~~而二分法就是切割中间,定义left是最开始的&…

背景:

在写力扣题目“搜素插入位置 ”时,发现二分法的一个细节点,打算记录下来,先看一张图:

我们知道,排序数组,更高效的是二分查找法~~~而二分法就是切割中间,定义left是最开始的,也就是下标为0;right 是最后一个

那么这个mid到底怎么写? 

简单想到的是:int mid = (left + right) / 2;

但是还有更好的写法!那就是:int mid = left + (right - left) / 2

原因解析

1. 防止整数溢出(关键原因)

假设:

left = 2000000000right = 2100000000 (21亿)

使用 (left + right) / 2的情况下:

left + right = 2000000000 + 2100000000 = 4100000000

但 int 最大只能存储 2147483647(约21亿),会导致整数溢出变成负数!

使用 left + (right - left) / 2的情况下:

right - left = 100000000
(right - left)/2 = 50000000
left + 50000000 = 2050000000

完全不会溢出!!!!


2. 数学等价性

两者数学上是等价的:

left + (right - left)/2

= left + right/2 - left/2

= left/2 + right/2

= (left + right)/2

但计算机的整数运算会截断小数,所以写法不同会影响结果。

对比总结

写法安全性可读性推荐度
(left + right)/2可能溢出更直观❌ 不推荐
left + (right - left)/2绝对安全稍复杂✅ 推荐

案例题目练习:

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

示例 1:

输入: nums = [1,3,5,6], target = 5

输出: 2

代码实现:

class Solution {public int searchInsert(int[] nums, int target) {int left = 0, right = nums.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {return mid;} else if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return left;}
}

http://www.dtcms.com/wzjs/132259.html

相关文章:

  • 政府网站模板html网络营销成功的原因
  • 莆田seo全网营销广州网站优化平台
  • 灵台教育局网站师资队伍建设免费广告制作软件
  • 网站性能优化怎么做石家庄邮电职业技术学院
  • 网站备案掉了什么原因企业网络推广方法
  • 做网站用上面软件写代码比较好关键词挖掘长尾词
  • 求html码源网站seo发包排名软件
  • 青岛城阳网站制作怎样建立自己网站
  • 郑州网站优化外包杭州seo的优化
  • 网站新闻置顶怎么做最近一周新闻大事
  • 网站制作销售术语百度一下你就知道原版
  • php网站开发教材百度搜索竞价
  • 兰州网站建设百度账户安全中心
  • 有专门做序列图的网站seo综合排名优化
  • 门户网站建设 总结站长之家域名查询鹿少女
  • 网站开发表格汕头网站排名优化
  • wordpress上传附加公众号seo排名软件
  • 北流网站建设人工智能培训课程
  • wordpress 添加友情百度seo排名优化公司哪家好
  • 阳光保险网站长沙网络公司最新消息
  • 建设企业查询平台信息流广告优化师培训
  • 网站维护方案怎么做百度广告代理商加盟
  • 綦江网站建设东莞seo网站排名优化
  • 大连最好的网站制作公司网站宣传
  • 排名好的昆明网站建设推广运营怎么做
  • wordpress菜单高度优化营商环境发言稿
  • 金华住房与城乡建设部网站广告营销是做什么的
  • 做网站要哪些技术优化电池充电什么意思
  • 微信公众平台小程序二维码怎么生成百度seo排名
  • 哪个网站做网站好安卓优化