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

丹阳网站建设报价文件外链网站

丹阳网站建设报价,文件外链网站,怎么利用网络赚钱,wordpress左右两栏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.yidumall.com/news/9041.html

相关文章:

  • 网站建设做的好的公司江苏seo平台
  • 安徽房产网站建设网上推广平台
  • 泰州做网站优化培训心得体会100字
  • 网站怎么做移动端适配新闻头条今日新闻下载
  • 网站快捷导航ie怎么做郑州seo公司排名
  • 重庆建网站计划网络关键词排名软件
  • 电商网站的推广方式如何开发一款app软件
  • 新疆工程建设网站上查询系统百度网络电话
  • 青海省建设厅建管处网站深圳网络推广营销
  • 雷达图 做图网站网站流量排名查询工具
  • 商城网站支付端怎么做短视频推广公司
  • 邢台做网站找谁seo核心技术排名
  • 中国建筑建设通的网站新闻株洲最新
  • 毕业设计选择做网站的意义杭州做网站的公司排行
  • 钓鱼网站生成器百度站长链接提交
  • 品牌推广多少钱百度seo关键词优化公司
  • 红酒网站定位互联网广告营销
  • 做网站 程序员 暴富电商数据统计网站
  • 胶州网站建设哪里有哈尔滨优化网站方法
  • 个人网站建设方案策划书浙江百度推广开户
  • 网站开发流程6个阶段一份完整的活动策划方案
  • 色情姐姐做床戏网站怎样制作免费网页
  • 可以在哪个网站做封面赚钱网络公司品牌推广
  • 企业网站开发模板查看百度关键词价格
  • 惠州seo计费管理网站seo推广计划
  • 做购物网站需要什么站长工具樱花
  • 网站开发常问的技术性问题上海seo培训中心
  • 个人做电影网站服务器放国外安全吗网站制作哪家公司好
  • 网站域名备案注册证书腾讯广告推广怎么做
  • 如何自己做淘宝客网站精准营销系统