更安全的求中间值
1. 数组 arr,起始位置是 L, 终点位置 R
常规写法
int mid = (L + R) / 2;
更安全的写法
int mid = L + ((R - L) >> 1)
2. 如何获得数据的长度
new int[R - L + 1]
3. 步长乘二的安全方式
不安全,可能溢出,因为 int 的最大值是 2的31 - 1
当step等于2的30次方时,*2等于 2的 31次方了 会溢出
安全
step *= 2
if(step >= (N >> 2)){
break;
}else{
step *=2;
}
分类:
数据结构与算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具