题解 | #二分查找-I#

二分查找-I

http://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

比较简单,直接二分查找实现就行,但是也可以借助python的list.index函数直接实现。

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 25 10:45:58 2022

@author: Administrator
"""
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @param target int整型 
# @return int整型
#
import math

class Solution:
    def search1(self , nums, target: int) -> int:
        # write code here
        try:
            index = nums.index(target)
            return index
        except:
            return -1
    def search(self , nums, target: int) -> int:
        if len(nums) == 0:
            return -1
        first = 0 ; last = len(nums)-1
        if target == nums[first]:
            return first
        elif target == nums[last]:
            return last
        elif target < nums[first]:
            return -1
        elif target > nums[last]:
            return -1
        while True:
            mid = int((first+last)/2)
            if nums[mid] == target:
                return mid
            elif nums[mid] > target:
                last = mid
            elif nums[mid] < target:
                first = mid
            if first>=last-1:
                return -1


x = [1,2,3,4,5]
print(Solution().search(x,2))
全部评论

相关推荐

昨天 15:14
南京大学 C++
这福利有点意思,即实际又实用,不知道大家觉得如何🤔️
芹菜是真的菜:然而mentor不喝,几个实习生相互用券连喝一周爱马哥
投递腾讯等公司7个岗位
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务