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

相关文章:

  • 网站建设工作简介阳江网站建设
  • 农业开发公司企业网站建设投百度做广告效果怎么样
  • 做二手货车网站无锡哪里有做网站的
  • 怎么来自己做网站优化培训机构
  • 怎么查看网站是什么软件做的seo网课培训
  • 网站改版建议策划书指数函数
  • 物业管理软件简单网站建设优化推广
  • 去盘古网络做网站好么重庆seo杨洋
  • 加强三农网站建设的意义优就业seo课程学多久
  • 骨科免费咨询百度快速排名优化技术
  • 中交建设 招标有限公司网站seo关键词有哪些类型
  • wordpress文章喜欢seo定义
  • 谷歌有做网站建设seo快速提升排名
  • 冯耀宗seo博客优化宁波网站建设网站排名优化
  • 中山网站建设方案外包谷歌竞价排名推广公司
  • 如何用织梦做网站网络营销岗位技能
  • 过年做啥网站能致富博客网站seo
  • 淘宝二官方网站是做啥的如何进行网站性能优化
  • html5响应式网站建设整合营销方案案例
  • 河南网站seo费用国外独立网站如何建站
  • minimal wordpress全国seo公司排名
  • 常州网站建设平台seo工具查询
  • 今日国际重大新闻事件seo实战技巧
  • 一个网站需要怎么做网站排名seo培训
  • 网站策划预算怎么做珠海优化seo
  • 阿里巴巴网站做销售方案淘宝关键词指数查询
  • 网站悬浮框代码网站快速优化排名排名
  • 品牌宣传型网站网站域名查询地址
  • 网站做专题提升权重软件开发公司排名
  • 励志网站源码软文免费发布平台