当前位置: 首页 > 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.zhongyajixie.com/news/48239.html

相关文章:

  • php建立网站网站怎么收录到百度
  • 烟台开发区做网站百度高级搜索引擎入口
  • 低代码开发平台哪个最好游戏优化大师下载安装
  • 网站建设申请书最近比较火的关键词
  • 不会编程做网站电话百度
  • 深圳手工活外发加工网个人如何优化网站有哪些方法
  • 大连网站怎么佛山网站设计实力乐云seo
  • 简单的网页设计教程好的seo公司营销网
  • 焦作做网站公司自媒体平台有哪些
  • 保定市做网站的电话品牌广告
  • 深圳建站公司招聘百度推广代理
  • 网上接网站做百度指数查询工具app
  • 视频网站怎么制作北京网站优化服务商
  • 武威网站建设百度极速版
  • 阿里云备案网站建设方案书模板上海百度推广电话客服
  • php站点搭建seo的流程是怎么样的
  • 珠海做网站的公司介绍优化设计三年级上册语文答案
  • 公司网站建设哪里好百度一下你就知道 官网
  • 计算机毕业论文网站开发总结重庆seo排名扣费
  • c2b网站开发源码交易平台
  • 弹窗网站制作seo网站排名优化培训教程
  • seo策划方案广告投放优化师
  • 广州高端品牌网站建设哪家公司好怎么做百度网页推广
  • 公积金网站怎么做增员百度企业号
  • 网站建设什么牌子好seo 的原理和作用
  • 长春专业企业网站建设价格游戏搬砖工作室加盟平台
  • 深圳龙华做网站上海网站排名优化
  • 网站模板与网站定制版的区别搜索引擎营销的优缺点
  • java做手机网站建设站内推广有哪些方式
  • 香港公司网站内地主机seo在线培训