首页 > 其他分享 >力扣-数组-二分查找704

力扣-数组-二分查找704

时间:2023-03-24 11:57:41浏览次数:45  
标签:二分 right target nums 704 mid 力扣 left

 

 

 

 

 1 class Solution(object):
 2     def search(self, nums, target):
 3         """
 4         :type nums: List[int]
 5         :type target: int
 6         :rtype: int
 7         """
 8         ## 暴力循环法
 9         # for i in range(len(nums)):
10         #     if target==nums[i]:
11         #         return i
12         #     if nums[i]>target or i==len(nums)-1:
13         #         return -1
14 
15         ## 二分查找法
16         ## 注意划分边界和终止条件,最好的方法就是实例,然后总结
17         left = 0
18         right = len(nums)-1
19    
20         while(1):
21             mid = (left+right) // 2
22             if left==right and nums[left]!=target:
23                 return -1
24             if target==nums[mid]:
25                 return mid
26             elif target<nums[mid]:
27                 right = mid
28             elif target>nums[mid]:
29                 left = mid + 1

解题思路

1.暴力循环法,可以通过,但是耗时长

2.二分查找法

(1)确定初始左右边界

(2)注意二分时[left, right]都是闭区间(个人选择)

(3)实例推算,确定终止条件

标签:二分,right,target,nums,704,mid,力扣,left
From: https://www.cnblogs.com/shi-yi/p/17251040.html

相关文章

  • 力扣569(MySQL)-员工薪水中位数(困难)
    题目: 写一个SQL查询,找出每个公司的工资中位数,以任意顺序返回结果表。查询结果个数如下所示。  输出结果如下: 解题思路:中位数:位于集合正中间的元素。当数据总书......
  • P1570 KC 喝咖啡(小数二分)
    P1570KC喝咖啡题意:给定调料种数\(n\)和能加入的调料数\(m\),以及每种调料的美味度\(v_i\),消耗的时间\(c_i\)。请选择单位时间的美味度最大的咖啡。分析:\(t=\fra......
  • 力扣---剑指 Offer 32 - II. 从上到下打印二叉树 II
    从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树:[3,9,20,null,null,15,7],   3  /\ 9 20   / \  15 ......
  • P1163 银行贷款(小数二分)
    P1163银行贷款分析变量命名如下:\(n\)表示贷款的原值,\(m\)表示每月支付的分期付款金额,\(k\)表示分期付款还清贷款所需的总月数。\(p\)表示贷款的月利率第......
  • 力扣---剑指 Offer 32 - I. 从上到下打印二叉树
    从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树:[3,9,20,null,null,15,7],   3  /\ 9 20   / \  15  7返......
  • 力扣550(MySQL)-游戏玩法分析Ⅳ(中等)
    题目:需求:编写一个SQL查询,报告在首次登录的第二天再次登录的玩家的分数,四舍五入到小数点后两位。换句话说,您需要计算从首次登录日期开始至少连续两天登录的玩家的数量,然......
  • 力扣 49 字母异位词分组 multimap
    classSolution{public:vector<vector<string>>groupAnagrams(vector<string>&strs){multimap<string,string>mp;//键排序,值没动intlen=s......
  • 二分
    二分算法(一个简单且非常实用的算法)算法思想,通过中间值不断缩短检索区域-->大大降低T的可能性-->只要是检索的题目都可以用二分查找来解决算法思路:1.确定左右边界2.......
  • 力扣438 找到字符中所有字母异位词
    1、尺取2、比较classSolution{public:vector<int>findAnagrams(strings,stringp){intlen2=p.size();intlen1=s.size();int......
  • 力扣511(MySQL)-游戏玩法分析Ⅰ(简单)
    题目:活动表 Activity:写一条SQL 查询语句获取每位玩家 第一次登陆平台的日期。查询结果的格式如下所示:  解题思路:方法一:使用dense_rank()over(partitionby......