LC-数组-二分查找-704
2024-10-20 04:56:20
二分查找
[left, right] 方式
- [left, mid -1]
- [mid + 1, right]
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
//int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2
if (nums[mid] > target) {
right = mid - 1;
} else if (nums[mid] < target) {
left = mid + 1;
} else return mid;
}
//int middle = left + ((right - left) / 2);
// 防止溢出 等同于(left + right)/2
关于这一步的防止溢出,意义不大, Java中int的取值范围是2的32次方,最大值是2的31次方,最小值是负值的2的31次方-1
当数字这么大的时候,采取这样的查找方式是非常不合理的。
相关题目推荐
- 35.搜索插入位置(opens new window)
- 34.在排序数组中查找元素的第一个和最后一个位置(opens new window)
- 69.x 的平方根
- 367.有效的完全平方数
最新文章
- [NOIP2011] 提高组 洛谷P1311 选择客栈
- 【随笔】android开发的学习路线
- (medium)LeetCode .Implement Trie (Prefix Tree)
- c#高效比对大量图片
- SOCKET 地址
- hdu 5025 Saving Tang Monk 状态压缩dp+广搜
- mac缺少预编译.a问题
- POJ 2182 Lost Cows(牛排序,线段树)
- python类型转换、数值操作(收藏)
- 测试驱动开发实践2————从testList开始
- qml layout
- 数据规范化——sklearn.preprocessing
- 基于MGR+Atlas的读写分离尝试,以及MGR+Keepalived+Atlas自动故障转移+读写分离设想
- 去掉AMD锐龙和Intel Kaby Lake的不支持的硬件的提示
- Ajax和Json实现自动补全
- Flink--将表转换为DataStream或DataSet
- 5.1Python函数(一)
- 阅读程序 回答问题——FindTheNumber
- log4j的日志级别(ssm中log4j的配置)
- PAT B1017 A除以B (20 分)