python
文章平均质量分 58
zpkosmos
这个作者很懒,什么都没留下…
展开
-
leetcode剑指offer感悟61-68
剑指 Offer 68 - II. 二叉树的最近公共祖先https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/solution/mian-shi-ti-68-ii-er-cha-shu-de-zui-jin-gong-gon-7/问题1.:如何定义公共祖先?最近公共祖先的定义: 设节点 root 为节点 p, q 的某公共祖先,若其左子节点 root.left和右子节点 root.right 都原创 2020-08-14 16:52:29 · 95 阅读 · 0 评论 -
leetcode剑指offer感悟41-50
剑指 Offer 45. 把数组排成最小的数自定义比大小规则的快排剑指 Offer 49. 丑数只想到了后面的丑数只能是前面的2,3,5倍,没想到怎么去做状态转移解析:https://leetcode-cn.com/problems/chou-shu-lcof/solution/mian-shi-ti-49-chou-shu-dong-tai-gui-hua-qing-xi-t/...原创 2020-08-11 16:50:08 · 105 阅读 · 0 评论 -
leetcode感悟1-10
第一题:1.对于数组(或者将数组里的内容放置在字典),查找一个东西是否存在,比从头到尾把每一个东西找出来看看这个东西是不是想要的要快。...原创 2020-07-06 22:36:12 · 117 阅读 · 0 评论 -
leetcode感悟131-140
131. 分割回文串https://leetcode-cn.com/problems/palindrome-partitioning/solution/hui-su-you-hua-jia-liao-dong-tai-gui-hua-by-liweiw/回溯法思考的步骤:1、画递归树;2、根据自己画的递归树编码。python中判断回文字符串最简单的写法:s[:i] == s[:i][::-1]:...原创 2020-08-02 22:31:34 · 116 阅读 · 0 评论 -
leetcode感悟111-120
111. 二叉树的最小深度评论里看到的一段话写出结束条件 不要把树复杂化,就当做树是三个节点,根节点,左子节点,右子节点 只考虑当前做什么,不用考虑下次应该做什么 每次调用应该返回什么...原创 2020-07-30 22:23:22 · 98 阅读 · 0 评论 -
leetcode感悟121-130
130. 被围绕的区域没想到题解的思路这道题我们拿到基本就可以确定是图的 dfs、bfs 遍历的题目了。题目中解释说被包围的区间不会存在于边界上,所以我们会想到边界上的 O 要特殊处理,只要把边界上的 O特殊处理了,那么剩下的 O替换成 X 就可以了。问题转化为,如何寻找和边界联通的 O,我们需要考虑如下情况。链接:https://leetcode-cn.com/problems/surrounded-regions/solution/bfsdi-gui-dfsfei-di-gui-dfsbi..原创 2020-07-29 10:40:24 · 113 阅读 · 0 评论 -
leetcode每日一题感悟
329. 矩阵中的最长递增路径自己的想法:遍历矩阵中的每个点,同时每个点进行深度优先遍历,但是会超时原因在于使用朴素深度优先搜索,时间复杂度是指数级,会超出时间限制,因此必须加以优化。朴素深度优先搜索的时间复杂度过高的原因是进行了大量的重复计算,同一个单元格会被访问多次,每次访问都要重新计算。由于同一个单元格对应的最长递增路径的长度是固定不变的,因此可以使用记忆化的方法进行优化。用矩阵 memo 作为缓存矩阵,已经计算过的单元格的结果存储到缓存矩阵中。也就是说,记录以及走过点他们所能走的最远原创 2020-07-26 17:07:47 · 975 阅读 · 0 评论 -
leetcode感悟101-110
102. 二叉树的层序遍历二叉树层序遍历:队列python的collection包中有队列import collectionsqueue = collections.deque()queue.append(root)queue.appendleft('b')queue.extend(['c','d']) # 在最右边添加所有元素,这里就是一行代码添加c,dqueue.pop() # 将最右边的元素取出queue.popleft()...原创 2020-07-25 22:15:40 · 115 阅读 · 0 评论 -
leetcode感悟151-160
154. 寻找旋转排序数组中的最小值 II二分法边界条件另外二分法返回是start或者end,返回的条件就是start=endclass Solution: def findMin(self, nums: List[int]) -> int: left, right = 0, len(nums) - 1 while left < right: mid = (left + right) // 2原创 2020-07-22 23:00:59 · 113 阅读 · 0 评论 -
leetcode感悟91-100
91. 解码方法动态规划的边界条件1.初始的边界条件,判断是否符合输入规范2.每个状态判断是否符合输入规范原创 2020-07-20 16:16:01 · 117 阅读 · 0 评论 -
leetcode感悟71-80
71. 简化路径题一开始没看懂看了解析有一个写的非常棒class Solution: def simplifyPath(self, path: str) -> str: r = [] path = path.split('/') for s in path: r = {'':r, '.':r, '..':r[:-1]}.get(s, r + [s]) # radiansdict.g原创 2020-07-15 20:46:38 · 114 阅读 · 0 评论 -
leetcode感悟61-70
61. 旋转链表自己的想法是:1.快慢指针,一个到链表尾部,一个到链表第k个节点,但是问题在于不知道列表长度,所以不知道第k个位置是哪个2.因为不知道k和列表那个大那个小,所以要算完长度后作比较,根据比较结果可能要遍历第二遍列表解析:环状链表链表中的点已经相连,一次旋转操作意味着:先将链表闭合成环 找到相应的位置断开这个环,确定新的链表头和链表尾...原创 2020-07-15 10:57:58 · 90 阅读 · 0 评论 -
leetcode感悟41-50
46. 全排列深度优先搜索/状态重置递归不光要思考终止条件,以及进入下一次递归时的状态,还要思考“状态重置”,即“回到过去”、“恢复现场”,这个是在做深度优先遍历时要考虑的原创 2020-07-12 11:38:34 · 118 阅读 · 0 评论 -
leetcode感悟51-60
53. 最大子序和一道简单递归题,想半天想不出来,自闭了错在了状态的定义上和输出定义上我的思路:1.dp[i]:表示遍历到 nums[i] 时连续子数组的最大和。2.输出:dp[n-1]别人的思路:1.dp[i]:表示以 nums[i] 结尾的连续子数组的最大和。2.输出dp[0]、dp[1]、……、dp[n - 1]中的最大值错的原因:1.动态规划的状态定义不熟练2.以为使用动态规划返回的就一定是一个状态dp[n-1],而不能是对状态的进一步运算结果max(dp).原创 2020-07-08 10:54:22 · 124 阅读 · 0 评论 -
leetcode感悟141-150
148. 排序链表如何不用递归写归并排序原创 2020-07-07 11:07:44 · 107 阅读 · 1 评论 -
leetcode感悟81-90
86. 分隔链表如果需要分割列表,就建立多个列表,最后把多个列表拼成一个列表,别死活要在一个列表上操作原创 2020-07-06 22:33:44 · 122 阅读 · 0 评论 -
python数据结构学习笔记-查找
啊原创 2020-07-06 22:34:44 · 137 阅读 · 0 评论 -
leetcode感悟31-40
31. 下一个排列题目理解:乍一看所给示例:1,2,3→1,3,23,2,1→1,2,31,1,5→1,5,1好像只是后一个比前一个大,就交换就可以了,没有这种情况就排列实际上1,5,2→2,1,5不符合上面的描述另外要求原地修改...原创 2020-07-06 22:34:09 · 142 阅读 · 0 评论 -
leetcode感悟21-30
21. 合并两个有序链表递归怎么写?结合之前汉诺塔的问题,觉得自己写不出递归是因为问题的方向考虑反了,不能从最终往回倒推,也就是不能一开始考虑最终情况是一步步返回到初始状态的,而是应该去向怎么从0到1,0到1要做哪些步骤,1到2要做哪些步骤,从最简单的情况来思考,而不是上来就倒推所给的例子如何递归...原创 2020-07-06 22:35:54 · 108 阅读 · 0 评论 -
leetcode感悟11-20
15. 三数之和什么情况下用双指针?遍历列表,且需要同时知道两个值的时候都可以用,11. 盛最多水的容器也是这种情况。原创 2020-07-06 22:35:50 · 151 阅读 · 0 评论 -
leetcode剑指offer感悟21-30
面试题21. 调整数组顺序使奇数位于偶数前面题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。思考:由于不需要奇数和奇数之间,偶数和偶数之间有排序,因此不需要用冒泡这种双循环排序算法,这样计算量太复杂解析:双指针:考虑定义双指针 ii , jj 分列数组左右两端,循环执行:指针 ii 从左向右寻...原创 2020-07-06 22:36:16 · 146 阅读 · 0 评论 -
python数据结构学习笔记-排序
1.排序算法的稳定性:原有的序列中,两个元素同一经过排序后位置即使调换也符合排序要求,那么如果排序之后这两个元素保持原有的顺序,算法就是稳定的3,1,1,2排序后:1,1,2,3前两个1的顺序和原序列中的顺序一样,那么就是稳定的,也可以以元组排序为例,只对元组中的第一个元素排序,那么第二个元素不影响排序,如果两个元组第一个元素相同,第二个不同,那么这两个元组的前后顺序应该与排序...原创 2020-07-06 22:34:34 · 195 阅读 · 0 评论 -
leetcode剑指offer感悟11-20
面试题16. 数值的整数次方题目:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。思考:难道不就是连乘吗?不过要注意负的整数次方,没想到写出来居然超出时间限制,看解析才知道有快速幂乘法解析:https://leetcode-cn.com/problems/shu...原创 2020-07-06 22:36:20 · 137 阅读 · 0 评论 -
python数据结构学习笔记栈和队列
栈,就一个口,后进先出(LIFO),链表队列,先进先出(FIFO),树原创 2020-07-06 22:37:39 · 147 阅读 · 0 评论 -
前序中序重建二叉树,递归
1.上层递归的输入:前序和中序2.核心:树节点3.本层的返回值:新生成的节点4.停止条件:前序列表为空或者中序列表为空5.给下层传什么:发生变化的上层输入,也就是发生变化的前序和中序具体问题:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9...原创 2020-07-06 22:37:08 · 184 阅读 · 0 评论 -
python数据结构学习笔记树
啊原创 2020-07-06 22:37:00 · 232 阅读 · 0 评论 -
leetcode剑指offer感悟1-10
面试题05. 替换空格python有replace功能,但是不知道底层具体怎么实现的,有没有想c++里面那样考虑到了字符串所占空间的变化原创 2020-07-06 22:37:42 · 141 阅读 · 0 评论 -
python数据结构学习笔记链表
2020年4月14日22:18:03单链表需要有的的操作:判断链表是否为空is_empty() 长度 遍历整个链表 链表头部添加元素add(item) 链表尾部添加元素append(item) 指定位置添加元素insert(pos,item) 删除节点 查找节点是否存在节点类:class ListNode:def __init__(self, x):...原创 2020-07-06 22:36:55 · 226 阅读 · 0 评论 -
python数据结构学习笔记顺序表
2020年4月4日11:10:34内存基本存储单元:一个字节,八位对于32机器来说,一个int整型占用四个字节,一个字符占一个字节顺序表:在内存中连续存储同一类型的数据,这些数据就构成了顺序表,可以通过一个数据的地址加上根据数据类型而定的地址偏移访问其他数据为什么列表中元素的下标从0开始:因为0代表了地址没有偏移从数组中存储的数据模型来看,下标最精确的意思是”偏移...原创 2020-07-06 22:36:29 · 172 阅读 · 0 评论 -
python中"=",copy,deepcopy区别
import copya = {1: [1,2,3]}d=a #等于的时候完全相同,地址也相同b = a.copy() #子对象指向同一对象,但如果修改的就是对象,不是子对象,则b不会被修改c = copy.deepcopy(a)a[1].append(4)print(id(b))a[1] = [2,2,2] #因为修改的就是a,而不是a的子对象,所以b不变a[1].app...原创 2020-04-14 22:13:49 · 179 阅读 · 0 评论 -
pytorch的一些坑01:用预训练的vgg模型的部分层的特征报错,如张量不匹配
#打算取VGG19的第二个全连接层的输出,那么就需要构建一个类,这个类要包含VGG的全部卷积层,#以及到第二个全连接层的全部网络还有他们对应的参数class Classification_att(nn.Module): def __init__(self, rgb_range): super(Classification_att, self).__init__() ...原创 2019-11-04 15:52:42 · 2741 阅读 · 0 评论