LeetCode 排序和搜索简单部分 Python实现
#2018-06-07 June Thursday the 23 week, the 158 day SZ
#LeetCode 排序和搜索 简单部分 Python实现
'''并两个有序数组
注意题目要求不返回任何值,只是原地修改nums1,
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:
•初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
•你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:
输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]'''
#方法1:通过
#思路:简单的数组切片手段class Solution(object):def merge(self, nums1, m, nums2, n):""":type nums1: List[int]:type m: int:type nums2: List[int]:type n: int:rtype: void Do not return anything, modify nums1 in-place instead."""#nums1 = nums1[:m] + nums2[:n] #方法2nums1[m:m+n] = nums2[:n]nums1.sort()#sorted(nums1) #不会修改nums1,所以这里不能用#return nums1
my_solution = Solution()
nums1 = [1,2,3,0,0,0]
m = 3
nums2 = [2,5,6]
n = 3
a = my_solution.merge(nums1, m, nums2, n)
print(a)'''
第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例:
给定 n = 5,并且 version = 4 是第一个错误的版本。调用 isBadVersion(3) -> false
调用 isBadVersion(5) -> true
调用 isBadVersion(4) -> true
所以,4 是第一个错误的版本。
'''
## The isBadVersion API is already defined for you.
# @param version, an integer
# @return a bool
# def isBadVersion(version):
# The isBadVersion API is already defined for you.
# @param version, an integer
# @return a bool
# def isBadVersion(version):#方法1:通过
class Solution(object):def firstBadVersion(self, n):""":type n: int:rtype: int"""#二分查找,logn的时间复杂度if isBadVersion(1):return 1left=1;right=nwhile left < right:mid=left +(right-left)//2if isBadVersion(mid)==False and isBadVersion(mid+1)==True:return mid+1elif isBadVersion(mid)==False and isBadVersion(mid+1)==False:left=midelif isBadVersion(mid)==True and isBadVersion(mid+1)==True:right=mid#方法2 :超时
class Solution(object):def firstBadVersion(self, n):""":type n: int:rtype: int"""#二分查找,logn的时间复杂度if isBadVersion(1):return 1left=1;right=nwhile left < right:mid=left +(right-left)//2if isBadVersion(mid):right = midelse:left = midreturn left
LeetCode 排序和搜索简单部分 Python实现相关推荐
- python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图
python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...
- python中一些函数使用(tile,排序,搜索,计数)
knn(k-近邻)算法的过程中用到了tile函数,记录下来此函数的用法: 函数原型:numpy.tile(A,reps) #简单理解是此函数将A进行重复输出 函数格式tile(A,reps) A和re ...
- LeetCode实战:搜索旋转排序数组
题目英文 Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ...
- LeetCode 刷题之路(python版)
摘自:https://blog.csdn.net/qq_32384313/article/details/90745354 LeetCode 刷题之路(python版) 小坏wz 2019-06-02 ...
- leetcode 中的链表简单题 python3
目录: 基本使用 // 21题 合并有序链表 // 83题 删除有序链表重复元素 // 141题 环形链表 // 160题 相交链表 // 203题 移除链表元素// 206题 反转链表 // 基本使 ...
- Numpy入门教程:06. 排序,搜索和计数
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
- php和python哪个学起来简单一点-python和php哪个容易学
python和PHP的难易程度并没有明确的界限,如果是零基础的小白,建议学php会好一些,原因大公司小公司创业公司非互联网公司,都会用到php,python都是大公司在用 或互联网公司在用以你目前的背 ...
- datatable使用_使用Streamlit从简单的Python脚本创建交互式WebApp
如果有人告诉您可以使用150-200行代码创建交互式Web应用程序,该怎么办? 有趣的权利. Streamlit为您提供了使用简单的python脚本和一些streamlit调用来创建漂亮的Web应用程 ...
- 排序算法对比、总结(Python代码)
上海站 | 高性能计算之GPU CUDA培训 4月13-15日 三天密集式学习 快速带你晋级 阅读全文 > 正文共6126个字,27张图,预计阅读时间16分钟. 排序大的分类可以分为两种:内排 ...
最新文章
- zabbix rpm 安装 新增zabbix yum 源 并更新
- crm客户资源显示控制
- Android 退出应用程序
- Node+GitLab实现小程序CI系统
- 【安利UI设计师】电商购物移动应用程序界面设计UI套件包,轻松完成项目需求。
- ram自己写?用IP?
- NVIDIA控制面板打不开
- 专业测评:5款热门的免费报表软件
- struct termios 结构体详解
- FDD LTE对称吗?
- X64dbg脚本实现自动DUMP运行中解密出的PE文件
- 【云原生】云原生在网络安全领域的应用
- Sorry, you have been blocked !vultr 又被 openai 屏蔽了,只能换个 vps 了
- jmeter入门——第一个jmeter脚本
- 如何掌控自己的时间和生活
- 毕业设计Java web塞北村镇旅游网站设计源码+论文+视频+截图
- python作业:学生成绩表数据包括:学号、姓名,高数、英语和计算机3门课成绩
- php围棋源码,腾讯围棋AI技术 PhoenixGo 正式开源,源码、模型全公开
- 辽宁启迪电商:拼多多提升店铺流量的几个技巧
- Mysql:如果知道一个用户的出身日期,如何统计他的退休年龄是那一年