力扣 704. 二分查找
创始人
2024-03-06 17:23:50
0

1.题目:

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

2.示例:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

3.自己实现:

class Solution {public int search(int[] nums, int target) {int y =0;for(int i =0;i

4.优质写法:

总体模板就是先找到中间的数,与目标相比,如果不符合,直接可以砍去一半,在剩下的一半数组里面找

目标数,同理,如果没找到继续砍去剩余一半的一半.这才符合二分寻找

class Solution {public int search(int[] nums, int target) {//nums.length -1 获取下标int left =0; int right = nums.length -1;while(left<=right){//这里不可以简化为left+right,是因为left和right相加可能会超过int最大值,溢出int mid = left+(right - left)/2;if(nums[mid]==target){return mid;//如果中间的数大于目标,那说明target在mid的左侧,那么需要把右侧去掉,也就是right缩小,已经判断过target小于mid 所以right = mid -1 }else if(nums[mid]>target){right = mid -1;//如果中间数小于target,那么说明target在mid的右侧,数组越靠右越大,所以要把mid左侧删掉left = mid 但是已经判断过mid小于target 所以 left = mid + 1;}else{left = mid +1;}}return -1;}
}

相关内容

热门资讯

开学的心情六年级作文 开学的心情六年级作文5x-1/3x=2
为什么开髋一字马横叉练习以后还... 为什么开髋一字马横叉练习以后还要做闭髋练习?因为我们要给我们的髋部一个适应过程不然容易导致它受到损伤...
宁逢神刀莫遇绝剑是那部小说的人... 宁逢神刀莫遇绝剑是那部小说的人物《绝剑古无双》 威震江南第一花,碧血染成海棠红 宁逢神刀,莫遇绝剑 ...
怎么样测试自己是男性化还是女性... 怎么样测试自己是男性化还是女性化个性化的性别偏向有心理和生理上的特征,第二特征反向发展,偏向哪一方就...
加速城乡融合步伐 浙江丽水谱写... 来源:中国新闻网 中新网丽水7月19日电(傅飞扬)作为中国共同富裕的先行探路者,当前浙江正以“千万工...
西安雨雨雨马上来!雷电、暴雨!... 这两天有多少小伙伴和小编一样都在等雨来?它会来?它不会来?7月19日据最新预报雨真的要来了!西安雨雨...
湖北连发67条高温预警,暴雨大... 转自:武汉发布中央气象台7月19日06时继续发布高温黄色预警预计7月19日白天,新疆大部、陕西关中地...
学声乐(美声)如何使自己的低音... 学声乐(美声)如何使自己的低音向下拓宽?是个长久的活 多练气息的控制和中声区 在慢慢的...
“韦帕”来袭 海南接连发布台风... 中新网海口7月19日电 (记者 王子谦)今年第6号台风“韦帕”正逐渐向广东深圳到海南文昌一带沿海靠近...