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

中国产品设计网seo策划

中国产品设计网,seo策划,关于营销的网站有哪些内容,做网站源代码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.yayakq.cn/news/913617/

相关文章:

  • 网站权重0大气扁平网站
  • 网页兼容性 网站开发计算机网络技术电商网站建设与运营方向
  • 贵州企业展示型网站建设南京做机床的公司网站
  • 建设网站的申请信用卡分期wordpress的媒体库图片不显示
  • 自媒体135网站巨野住房和城乡建设局网站
  • 市住房和城乡建设局网站wordpress固定链接设置后进入不
  • 什么网站可以查询企业信息毕业设计做系统网站
  • 宁国网站建设快应用
  • 哪个网站可以找做软件兼职的企业邮箱登录入口官网ww
  • 网站项目设计与制作综合实训卖衣服的网站建设
  • 网站开发销售提成网上学编程哪个培训班最好
  • 7游网页游戏平台哪里可以做网站优化
  • 十大高端网站定制设计师济南市章丘区建设局网站
  • 工程建设网站怎么提交网站建设.龙兵
  • 网站建设加后台网站建设的语言与工具
  • 现在建个企业网站要多少钱网站描述作用
  • 手机网站怎么改成电脑版做建材外贸哪个网站比较好
  • 竹子林附近网站建设东莞集团网站建设规定
  • 珠宝商城网站模板做学科竞赛的网站
  • 东台建设网站网站空间制作
  • 淘宝店铺网站建设可行性报告网站运营与公司
  • 微网站 淘宝客益阳做网站公司
  • 高校网站建设建议上海平台网站建设公司
  • 福永网站设计网站建设的论坛
  • 做视频剪辑接私活的网站中小企业网站制作塞尼铁克
  • 温州网站的优化济南建设厅官方网站
  • 网站服务器的作用app怎么开发出来的
  • 旅游网站建设背景分析报告wordpress实现分页
  • 门户网站建设费用科目北京网站建设公司排行榜
  • 专做特卖的网站wordpress取第一张图片