当前位置: 首页 > news >正文

丹阳网站建设报价搜索引擎优化英文简称为

丹阳网站建设报价,搜索引擎优化英文简称为,石家庄是哪个省,做毕设的网站万Python世界:力扣题704二分查找 任务背景思路分析代码实现测试套件本文小结 任务背景 问题来自力扣题目704:Binary Search,大意如下: Given an array of integers nums which is sorted in ascending order, and an integer target…

Python世界:力扣题704二分查找

    • 任务背景
    • 思路分析
    • 代码实现
    • 测试套件
    • 本文小结

任务背景


问题来自力扣题目704:Binary Search,大意如下:

Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1.

You must write an algorithm with O(log n) runtime complexity.

翻译下,需求是:对有序数组进行查找指定数字,若有返回索引,若无返回-1.

思路分析


重温下二分写法,思路很简单,发现值大的下移上界,发现值小的上移下界,直到上下界重合。

要注意的是无target时,mid的偏移问题。

代码实现


class Solution(object):def search(self, nums, target):""":type nums: List[int]:type target: int:rtype: int"""# range: [low, high)low = 0high = len(nums)while (low < high):mid = low + (high - low) // 2if nums[mid] < target:low = mid + 1elif nums[mid] > target:high = midelse:return mid# not foundreturn -1# test
nums = [-1, 0, 3, 5, 9, 12]
target = 9# nums = [-1,0,3,5,9,12]
# target = 2sol = Solution()
res = sol.search(nums, target)
print(res)

测试套件


# 导入单元测试
import unittest# 编写测试套
class TestSol(unittest.TestCase):# 不在数组中def test_special1(self):nums = [-1, 0, 3, 5, 9, 12]target = 2ret = -1sol = Solution()self.assertEqual(sol.search(nums, target), ret)# 下边界def test_special2(self):nums = [-1, 0, 3, 5, 9, 12]target = -1ret = 0sol = Solution()self.assertEqual(sol.search(nums, target), ret)# 上边界def test_special3(self):nums = [-1, 0, 3, 5, 9, 12]target = 12ret = 5sol = Solution()self.assertEqual(sol.search(nums, target), ret)def test_common1(self):nums = [-1, 0, 3, 5, 9, 12]target = 5ret = 3sol = Solution()self.assertEqual(sol.search(nums, target), ret)def test_common2(self):nums = [-1, 0, 3, 5, 9, 12]target = 9ret = 4sol = Solution()self.assertEqual(sol.search(nums, target), ret)# 含测试套版本主调
if __name__ == '__main__':print('start!')unittest.main() # 启动单元测试print('done!')

本文小结


二分核心:索引偏移存乎一心。

可进一步思考若有重复值时,如何找到最小重复索引或最大重复索引。

http://www.tj-hxxt.cn/news/19330.html

相关文章:

  • 苏州企业网站开发电子商务推广方式
  • 哈尔滨网站运营服务商营销托管全网营销推广
  • 网页设计100种方法广州seo全网营销
  • 厦门建网站做优化一个完整的营销策划方案范文
  • 哪里有做区块链网站的免费的舆情网站
  • 建设网站培训全国免费发布广告信息平台
  • 想开加工厂怎么找订单网站怎么优化推广
  • 网站建设 方案下载合肥网络公司
  • 网站开发专业简历模板如何做百度竞价推广
  • 建湖住房和城乡建设局网站百度网盘登陆入口
  • 龙岗大运做网站的公司收录优美图片topit
  • 建设工程职称 在哪个网站dw网页制作详细步骤
  • 什么网站可以做设计兼职全文搜索引擎有哪些
  • 广东网站建设哪家好seo优化网
  • 网站受到攻击 怎么做攻击的怎样建网站赚钱
  • 政府网站建设存在的问题及建议百度优化软件
  • wordpress仿百度百家seo搜索引擎优化营销案例
  • 珠海市网站建设分站怎么样北京seo做排名
  • 网站建设类合同范本百度指数行业排行
  • 网站的建设目标文档百度手机助手下载2022新版
  • 建设银行网站密码忘记了咋办精准营销推广
  • 适合vue做的网站类型百度网址安全中心
  • iis中的网站启动不了网络营销的专业知识
  • wap手机网站开发asp经验想要网站导航推广页
  • 有专门做摄影画册的网站吗免费推广引流平台推荐
  • 广东专业网站建设独立站seo搜索优化
  • 成品网站分享一下太原做网站的工作室
  • 基本的网站建设步骤seo独立站优化
  • 自动生成作文的网站百度seo价格
  • 怎样给网站或者商品做推广seo优化排名软件