自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 JZ36 两个链表的第一个公共结点 python

my versionclass Solution: def FindFirstCommonNode(self , pHead1 , pHead2 ): if pHead1 is None or pHead2 is None: return None dic = {} len1, len2 = 0, 0 p = pHead1 while p: if p.val not .

2021-10-13 23:08:14 97

原创 JZ33 丑数 python

JZ33 丑数 # -*- coding:utf-8 -*-class Solution: def GetUglyNumber_Solution(self, index): if index <= 1: return index ugly = [1] idx_2, idx_3, idx_5 = 0,0,0 while len(ugly) < index: cur_ugly

2021-09-05 20:03:55 105

原创 剑指 Offer 48. 最长不含重复字符的子字符串 python

剑指 Offer 48. 最长不含重复字符的子字符串my version举例分析错误记录忘记平时移动中累加长度’a’“pwwkew”class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ ret = 0 max_diff_str_len = 0 # 存放

2021-09-04 15:04:33 113

原创 剑指 Offer 47. 礼物的最大价值

剑指 Offer 47. 礼物的最大价值class Solution(object): def maxValue(self, grid): """ :type grid: List[List[int]] :rtype: int """ if not grid: return m = len(grid) n = len(grid[0]) max_v

2021-09-02 14:04:06 75

原创 剑指 Offer 46. 把数字翻译成字符串 python

剑指 Offer 46. 把数字翻译成字符串class Solution(object): def translateNum(self, num): """ :type num: int :rtype: int """ if num == 0: return 1 # 将数字按每一位转换为数组 nums = [] while num:

2021-09-01 22:42:01 110

原创 JZ32 把数组排成最小的数 python

JZ32 把数组排成最小的数my version求所有排列的集合再求最小值注意求排列的写法class Solution: def __init__(self): self.num = [] def permutation(self, numbers, start): if start == len(numbers): s = '' for j in range(len(numbers)):

2021-09-01 22:37:21 151

原创 JZ31 整数中1出现的次数(从1到n整数中1出现的次数) pyhton

JZ31 整数中1出现的次数(从1到n整数中1出现的次数)my version1不考虑时间复杂度,判断每个数字中1的个数class Solution: def is_with_1(self, n): count = 0 while n: if n % 10 == 1: count += 1 n = n // 10 return count def Numbe

2021-09-01 18:04:23 50

原创 JZ30 连续子数组的最大和 python

JZ30 连续子数组的最大和my version错误记录把每次连续加和的最大值记错为每个出现的最大值class Solution: def FindGreatestSumOfSubArray(self, array): if array: con_sum = [] for i in range(len(array)): con_sum.append(array[i])

2021-09-01 15:34:16 91

原创 JZ63 数据流中的中位数 python

JZ63 数据流中的中位数my version# -*- coding:utf-8 -*-class Solution: def __init__(self): self.data = [] def Insert(self, num): self.data.append(num) self.data.sort() def GetMedian(self): if self.data: len

2021-09-01 14:37:21 71

原创 JZ29 最小的K个数 python

JZ29 最小的K个数my version选择排序时间复杂度O(kn)class Solution: def GetLeastNumbers_Solution(self, tinput, k): for i in range(k): min_idx = i for j in range(i+1, len(tinput)): if tinput[min_idx] > tinput[j]:

2021-08-31 15:36:41 89

原创 JZ28 数组中出现次数超过一半的数字 python

JZ28 数组中出现次数超过一半的数字my versionclass Solution: def MoreThanHalfNum_Solution(self, numbers): dic = {} # {num: count} count = len(numbers) // 2 for n in numbers: if n in dic: dic[n] += 1 el

2021-08-30 22:19:32 119

原创 JZ27 字符串的排列 python

JZ27 字符串的排列动态规划把问题分解为两步:求第一个字符为所有可能的字母(把第一个字母和后面所有与第一个字符不等的字符交换)固定第一个字符,求后面字符的排序数组转换为字符串eg.[‘a’, ‘b’]想转换为字符串,可用''.join(['a', 'b'])得到’ab’class Solution: def __init__(self): self.ret = [] def dp(self, s, i): if i == len(s):

2021-08-30 20:36:54 70

原创 JZ61 序列化二叉树 python

JZ61 序列化二叉树先序遍历构造class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def Serialize(self, root): # write code here if not root: return '#'

2021-08-29 20:01:16 139

原创 JZ26 二叉搜索树与双向链表 python

JZ26 二叉搜索树与双向链表中序遍历class Solution: def dfs(self, node): if not node: return if node.left: self.dfs(node.left) node.left = self.pre if self.pre: self.pre.right = node self.p

2021-08-29 18:11:53 84

原创 JZ25 复杂链表的复制 python

JZ25 复杂链表的复制哈希表my version错误记录复制首节点时,不能np_指针不能往后移,否则会为空class RandomListNode: def __init__(self, x): self.label = x self.next = None self.random = Noneclass Solution: # 返回 RandomListNode def Clone(self, pHead):

2021-08-29 15:47:41 172

原创 JZ24 二叉树中和为某一值的路径 python

JZ24 二叉树中和为某一值的路径my version错误记录复制内容时,注意是否为引用self.ret.append(copy.deepcopy(path))由于这里的path是引用,因此如果直接self.ret.append(path)之后随着path改变,self.ret中的值也会跟着改变import copyclass TreeNode: def __init__(self, x): self.val = x self.left = Non

2021-08-28 21:19:36 76

原创 JZ23 二叉搜索树的后序遍历序列 python

JZ23 二叉搜索树的后序遍历序列后序遍历得到的序列,最后一个值为根节点的值,数组中前面的数字分为两部分第一部分是左子树节点的值,他们都比根节点的值小,第二部分是右子树节点的值,他们都比根节点的值大错误记录当需要判断一个范围内数字与某个数字的大小情况时,先判断这个范围是否为空class Solution: def dfs(self, arr, start, end): if start >= end: return True

2021-08-28 18:21:56 138

原创 JZ59 按之字形顺序打印二叉树 python

JZ59 按之字形顺序打印二叉树my version错误记录自行添加特殊符号后,没有判断边界条件from queue import Queue class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def Print(self, pRoot): if not pR

2021-08-28 00:23:53 78

原创 JZ22 从上往下打印二叉树 python

JZ22 从上往下打印二叉树my versionfrom queue import Queue class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom(self, root):

2021-08-27 21:54:52 84

原创 JZ21 栈的压入、弹出序列 python

JZ21 栈的压入、弹出序列my version错误记录遇到数组下标可能越界的情况,需要把判断越界条件写在前面,比如while push_idx < len(pushV) and pushV[push_idx] != popV[pop_idx]: and前后顺序颠倒会出错# -*- coding:utf-8 -*-class Solution: def IsPopOrder(self, pushV, popV): if len(pushV) != len(pop

2021-08-27 21:18:30 110

原创 JZ20 包含min函数的栈 python

JZ20 包含min函数的栈my version错误记录栈为空的特殊判断class Solution: def __init__(self): self.stack = [] self.min_stack = [] def push(self, node): self.stack.append(node) if self.min_stack: self.min_stack.appe

2021-08-27 18:32:44 105

原创 JZ19 顺时针打印矩阵 python

JZ19 顺时针打印矩阵可以将矩阵看成若干层,首先打印最外层的元素,其次打印次外层的元素,直到打印最内层的元素。对于每层,从左上方开始以顺时针的顺序遍历所有元素。假设当前层的左上角位于 (top,left),右下角位于(bottom,right),按照如下顺序遍历当前层的元素。1、从左到右遍历上侧元素,依次为(top,left) 到(top,right)。2、从上到下遍历右侧元素,依次为(top+1,right) 到 (bottom,right)。3、如果 left<right 且top&

2021-08-26 21:41:19 322

原创 JZ58 对称的二叉树 python

JZ58 对称的二叉树先序遍历 根左右 同时根右左class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def bfs(self, r1, r2): if not r1 and not r2: return True if not r

2021-08-26 18:05:54 63

原创 JZ18 二叉树的镜像

JZ18 二叉树的镜像class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def Mirror(self , pRoot ): if not pRoot: return pRoot.left, pRoot.right = pRoot

2021-08-26 17:36:36 56

原创 JZ17 树的子结构 python

JZ17 树的子结构class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def dfs(self, r1, r2): if r2 is None: return True if r1 is None: retu

2021-08-26 17:34:09 95 1

原创 JZ16 合并两个排序的链表 python

JZ16 合并两个排序的链表my versionclass ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): pHead = ListNode(-1) p = pHead while pHead1 and p

2021-08-26 00:39:06 112

原创 JZ15 反转链表 python

JZ15 反转链表my versionclass ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: # 返回ListNode def ReverseList(self, pHead): if pHead: p = pHead pp = pHead # 要插入的节点

2021-08-26 00:26:12 80

原创 JZ55 链表中环的入口结点 python

JZ55 链表中环的入口结点my versionclass ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def EntryNodeOfLoop(self, pHead): p = pHead l = [] while p.next: l.append((p.val, p

2021-08-25 23:20:35 83

原创 JZ14 链表中倒数最后k个结点 python

JZ14 链表中倒数最后k个结点my versionclass ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def FindKthToTail(self , pHead , k ): # write code here length = 0 p = pHead

2021-08-25 18:45:22 68

原创 JZ13 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分my version快速排序的四种写法错误记录在函数里要交换数组里的值需要将数组的地址也传过去class Solution: def swap(self, a, i, j): a[i] = a[i]^a[j] a[j] = a[i]^a[j] a[i] = a[i]^a[j] def reOrderArra

2021-08-22 22:26:28 37

原创 JZ53 表示数值的字符串 python

JZ53 表示数值的字符串描述请实现一个函数用来判断字符串str是否表示数值(包括科学计数法的数字,小数和整数)。科学计数法的数字(按顺序)可以分成以下几个部分:1.若干空格2.一个整数或者小数3.(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个整数(可正可负)4.若干空格小数(按顺序)可以分成以下几个部分:1.若干空格2.(可选)一个符号字符(’+’ 或 ‘-’)3. 可能是以下描述格式之一:3.1 至少一位数字,后面跟着一个点 ‘.’3.2 至少一位数字,后面跟着一个点 ‘.’

2021-08-22 17:47:23 58

原创 JZ52 正则表达式匹配 python

JZ52 正则表达式匹配my version错误记录“aaa”,“a*a” 未通过“” , “.*” 未通过“”,"." 未通过“a”,".*" 未通过“ab”,".*" 未通过class Solution: def match(self , string , pattern ): p_string = 0 p_pattern = 0 while p_string < len(string): if

2021-08-21 23:39:49 55

原创 JZ56 删除链表中重复的结点 python

JZ56 删除链表中重复的结点错误记录1->1->2 头节点可能被删除1->1->2->21->1->2->3->3->4->5->5class Solution: def find_no_repeat(self, node): p = node if p and p.next: if p.val != p.next.val:

2021-08-20 23:29:11 107

原创 JZ12 数值的整数次方 python

JZ12 数值的整数次方注意考虑特殊情况,如exponent为负数my versionclass Solution: def Power(self, base, exponent): if exponent < 0: exponent = -exponent ex_flag = 1 else: ex_flag = 0# if base == exponent ==

2021-08-20 13:30:45 83

原创 JZ11 二进制中1的个数 python

JZ11 二进制中1的个数my version未通过所有样例,内存超过限制内存class Solution: def NumberOf1(self, n): if n >= 0: symbol = 0 else: symbol = 1 binary = [] while n: binary.append(n % 2) n = n

2021-08-19 23:47:06 86

原创 JZ67 剪绳子 python

JZ67 剪绳子book method1动态规划求一个问题的最优解整体问题的最优解依赖于各个子问题的最优解子问题之间存在互相重叠的更小的子问题从上往下分析,从下往上求解问题设有长度为n的绳子,则第一刀可以切在第i处,0<i<n,则f(n)=max(f(i)∗f(n−i))f(n) = max(f(i)*f(n-i))f(n)=max(f(i)∗f(n−i))从小开始分析n=0,1时f(n)=0,n=2时f(n)=1,n=3时f(n)=2class Solution:

2021-08-19 20:24:15 119

原创 JZ66 机器人的运动范围 python

JZ66 机器人的运动范围my versiondfs错误记录a = b = [x for x in range(n)] 会使a、b指向同一空间由于机器人从[0,0]开始运动,因此只有向右和向下两个方向可以走class Solution: def dfs(self, i, j, thre, rows, cols):# print(i,j) if i<0 or i>=rows or j<0 or j>=cols or self.

2021-08-17 22:10:24 107

原创 JZ65 矩阵中的路径 python

JZ65 矩阵中的路径book method回溯算法我们看到他是从矩形中的一个点开始往他的上下左右四个方向查找,这个点可以是矩形中的任何一个点,所以代码的大致轮廓我们应该能写出来,就是遍历矩形所有的点,然后从这个点开始往他的4个方向走,因为是二维数组,所以有两个for循环。每一个点我们都可以往他的4个方向查找,所以我们可以把它想象为一棵4叉树,就是每个节点有4个子节点,而树的遍历我们最容易想到的就是递归。DFShttps://zhuanlan.zhihu.com/p/355968635cl

2021-08-17 21:08:51 118

原创 JZ6 旋转数组的最小数字 python

JZ6 旋转数组的最小数字my version时间复杂度O(n)错误记录特殊样例:数组未进行旋转如[1,2,3] 找最小 1class Solution: def minNumberInRotateArray(self, rotateArray): if rotateArray: for i in range(1, len(rotateArray)): if rotateArray[i-1]>rotateA

2021-08-16 20:36:15 91

原创 numpy.array二维列表 按某列的key排序

numpy.argsort()返回排序索引example:按第2列排序a=a[np.argsort(a[:,2]),:]

2021-08-15 10:41:56 220

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除