Python
小怡情ifelse
百度搬砖中
展开
-
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例: 现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22]]给定 target=5,返回true。给定target=20,返回false。class Solution:...原创 2020-08-17 23:43:29 · 156 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例一:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例二:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为1的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -&g...原创 2020-08-04 00:09:29 · 97 阅读 · 0 评论 -
AQY:查找二叉树中值为k的节点
class TreeNode(): def __init__(self, x: int): self.val = x; self.left = None self.right = Noneclass Tree(): def __init__(self, k: int): self.k = k self.searchedNode = None # DFS 深度遍历 - 先序遍历 def s.原创 2020-07-01 23:41:51 · 379 阅读 · 0 评论 -
剑指Offer42 连续子数组的最大和 (分治算法)
输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。第一种:暴力解法采用for循环遍历,时间复杂度O(n^3)第二种:分治算法时间复杂度O(nlog(n))class Solution(): def searchMaxValue(sel...原创 2020-06-09 20:19:30 · 186 阅读 · 0 评论 -
剑指offer I:从上到下打印二叉树
class Solution: def levelOrder(self, root: TreeNode) -> List[int]: queue = [] // 使用list模拟队列 result = [] if root == None: return result queue.append...原创 2020-04-13 23:57:23 · 71 阅读 · 0 评论 -
安装PIL一直失败,切换源解决办法
今天在用Python处理图片过程中,需要安装PIL,但一致遇到time out超时等error信息,导致没办法下载安装,最终发现需要切换为国内的源,下面清华源:pip install -ihttps://pypi.tuna.tsinghua.edu.cn/simplePILhttps://pypi.tuna.tsinghua.edu.cn/simple 清华源这样就可以成功下载安...原创 2020-03-31 19:33:46 · 1377 阅读 · 0 评论 -
剑指offer48 最长不含重复字符的子字符串
题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度,假设字符串中只包’a’~’z’字符。例如,在字符串’arabcacfr’中,最长的不含重复字符的子字符串是’acfr’,长度是4摘自力扣一个比较好的解决方案:https://leetcode-cn.com/problems/longest-substring-without-repeating-characte...原创 2019-11-30 23:43:09 · 106 阅读 · 0 评论 -
剑指offer49 丑数
我们之把只包含因子2、3和5的数称作丑数。例如,6和8是丑数,但14不是,因为它包含因子7。习惯上我们把1当作第一个丑数。求任意数是否是丑数。(稍微对原题题目做了变种)题解:所以一个数m是另一个数n的因子,是指n能被m整除,也就是n%m=0,根据丑数的定义,丑数只能被2、3和5整除。也就是说,如果一个数能被2整除,就连续除以2,如果能被3整除,就连续除以3,如果能被5整除,就连续除以5,如果最...原创 2019-11-27 00:18:09 · 87 阅读 · 0 评论 -
剑指offer50 第一个只出现一次的字符
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)解题思路:第一:利用python特性string.count(str)返回 str 在 string 里面出现的次数,利用python此特性可以几行代码搞定class Solution: def FirstNo...原创 2019-11-19 19:44:23 · 108 阅读 · 0 评论 -
剑指offer52 两个链表的第一个公共节点
输入两个链表, 找出它们的第一个公共节点。解体思路公共结点的意思是相同的点,不仅值相同,next也相同,包括公共结点后面的节点也是完全相同,所以可以把两条链表看成Y字型了,某一个结点后面的点全部一样。例如3->2->1和4->2->1,2就是他们的第一个公共结点。我们先把全部结点分别压入两个栈,利用栈的特性后进先出特性,同时pop出栈,一开始两边的元素肯定是相同...原创 2019-10-31 00:50:19 · 93 阅读 · 0 评论 -
剑指offer58 翻转字符串
输入字符串“the sky is blue”,输出“blue is sky the”string = 'the sky is blue'class Solution(object): def reverseWords(self, s): s = s.strip() res = "" i, j = len(s) - 1, len(s...原创 2019-10-28 00:16:17 · 97 阅读 · 0 评论 -
剑指offer57 和为s的数字
题干:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一堆即可。例如:输入【1,2,4,7,11,15】和数字15,由于4+11=15,因此输出4和11解体思路:最简单暴力的解决办法是两个for循环,先在数组中固定一个数字,再一次判断数组中其余的n-1个数字和它的和是不是等于s,不过是件复杂度是O(n^2),更优的解法是...原创 2019-10-26 00:04:02 · 88 阅读 · 0 评论 -
剑指offer56 数组中数字出现的次数
一组数据[1, 2, 1, 3, 2, 5],只有两个数是不重复的,其余数都出现了两次,求不重复的两个值扩展知识:异或运算符”∧”,它的规则是若参加运算的两个二进位同号,则结果为0(假)异号则为1(真)即 0∧0=0,0∧1=1, 1^0=1,1∧1=0解体思路:如果其中只有一个数字不重复,很好解决,直接来一轮异或,得到的值就是不重复的值先将数组所有元素进行一次异或运算,可以...原创 2019-10-24 00:53:05 · 85 阅读 · 0 评论 -
剑指offer55 二叉树的深度 (python实现)
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Tree: def TreeDepth(self, pRoot): if pRoot is None: ...原创 2019-10-23 00:44:56 · 159 阅读 · 0 评论 -
剑指 Offer 53 - I. 在排序数组中查找数字 I (python实现)
用常规的二分法去查找,实践复杂度O(N),如果用二分法配合直接找第一个K和最后一个K,减少时间复杂度为 log(N)k = 7array = [1, 2, 3, 4, 5, 6, 7]length =len(array)mid = len(array) // 2count = 0def getStarttK(left, right): if left > right...原创 2019-10-20 02:45:01 · 158 阅读 · 0 评论 -
剑指offer54 二叉搜索树的第k大节点 (python实现)
题目:给定一棵二叉搜索树,请给出第k大节点。例如:二叉搜索树已经按照节点数值大小顺序排列了k = 5 # 寻找第k大的数 暂时k=3count = 0class BinaryTreeNode(object): def __init__(self, value=None, left=None, right=None): self = self ...原创 2019-10-22 01:30:57 · 239 阅读 · 0 评论 -
Python知识点
1.使用os.path.realpath(__file__)获取文件所在目录 路径+文件名2.os.path.abspath('.'), 获取当前文件所在路径 (当前文件的上一级路径)3..os.path.dirname(path),返回path的目录(os.path讲解https://www.cnblogs.com/hanmk/p/9857354.html)4.commands模...原创 2019-10-10 00:13:10 · 153 阅读 · 0 评论