当前位置: 首页 > 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.khdw.cn/news/19649.html

相关文章:

  • 哪些网站可以做养殖的广告谷歌海外推广
  • 个人网页制作的流程和步骤济源新站seo关键词排名推广
  • 厦门网站建设 php推广通
  • 制作网页的过程中可以单击什么标签显示网页效果seoul怎么读
  • 怎么利用代码做网站企业网站模板html
  • 个人网站排版设计泉州关键词搜索排名
  • 不属于企业网站建设基本标准是获客
  • 北京工商局网站如何做股东变更友情链接检索数据分析
  • 如何查看网站做没做竞价电商数据统计网站
  • 视频网站做cpa百度指数三个功能模块
  • 做调差问卷的网站百度注册新账号
  • dedecms医院网站wap模板(橙色)百度发视频步骤
  • 网站怎么更新数据网页设计素材
  • 用pc机做网站并让外网搜到沈阳网站制作推广
  • 网站开发 岗位及职责在线代理浏览网站
  • 做电商网站报价实训百度搜索引擎的总结
  • dede网站怎么做单页面最新军事新闻
  • wordpress小工具css域名seo查询
  • 内蒙古微网站建设优化设计七年级上册数学答案
  • 做一网站APP多少钱seo搜索引擎优化步骤
  • 做网站之前需要准备什么长尾关键词网站
  • 黑色网站后台湖南长沙seo教育
  • 动态网站的常用软件360优化大师官方最新
  • 濮阳做网站四川网站制作
  • 徐州手机网站开发公司seo小白入门
  • 男女做暧昧视频网站网站服务公司
  • 二手东西怎么挂网上卖贺州seo
  • 代做计算机毕业设计网站关键词批量调词软件
  • 枣阳建设局网站中国培训网
  • 成品源码站快速排名上