刷题
梦想是吃不完的格力高
也没这么喜欢刷题,就是为了找工作而已...还是喜欢面朝大海,春暖花开的
展开
-
leetcode LCP 07. 传递信息 python DFS BFS
leetcode LCP 07. 传递信息题目描述题解方法一:深度优先搜索 DFS思路:全局变量:方法二:广度优先搜索 BFS思路:emmm…第一次参加周赛,做好了被虐的准备!没事!我还可以!爬起来再战斗!我可是打天下战士的一员啊!!题目描述题解方法一:深度优先搜索 DFS思路:这是一道典型的寻找路径的题目,很容易想到DFS或者BFS,这里先考虑DFS,因为是一条路线走完,再走下...原创 2020-04-19 02:30:55 · 420 阅读 · 0 评论 -
leetcode 542.01矩阵 python BFS广度优先搜索
leetcode 542.01矩阵题目描述题解题目描述题解思路:首先肯定要遍历矩阵,找到起点,也就是元素为1的位置。找到了起点之后,开始遍历 上下左右 4个方向,先最靠近起点的第1层,再到第2层,…,直到遇到有元素为0就停止。这个思路就很像 BFS(一层层地来遍历),BFS的一大帮手就是队列 queue,利用队列来记录节点,节点进出的方式为先进先出,节点要记录的信息不仅仅是它自己的位置信...原创 2020-04-15 12:49:10 · 421 阅读 · 0 评论 -
leetcode 面试题25.合并两个排序的链表 同leetcode 21. python
leetcode 面试题25.合并两个排序的链表题目描述题解方法一:两个指针遍历方法二:递归题目描述题解方法一:两个指针遍历思路:就是最直接的想法定义一个新指针tmp用来遍历结果链表reshead1用来遍历l1链表head2用来遍历l2链表然后比较head1和head2对应的结点的值,小的那一个就接到tmp后面。# Definition for singly-linked li...原创 2020-04-09 23:01:50 · 111 阅读 · 0 评论 -
leetcode 22.括号生成 DFS BFS 动态规划 python
leetcode 22.括号生成题目描述题解方法一:深度优先遍历 DFS方法二:动态规划题目描述题解思路:先自己解一下题目,首先肯定是以 (开头,以)结尾。然后想,怎么判断这个组合到底正不正确呢?先是想到用栈stack,但是要很多次的pop和push才能判断,很繁琐。后来看题解,才发现有一个简单的方法,那就是 只要剩余的 左括号数 > 右括号数 那就是错误的了。再是怎么选择下一个...原创 2020-04-09 18:24:43 · 312 阅读 · 0 评论 -
leetcode 9.回文数 python
leetcode 9.回文数题目描述题解解法一解法二:看到题目里的进阶要求了吗?题目描述题解解法一思路:转为字符串,然后直接判断相不相等class Solution: def isPalindrome(self, x: int) -> bool: s = str(x) return s == s[::-1]解法二:看到题目里的进阶要求了...原创 2020-04-05 02:03:30 · 149 阅读 · 0 评论 -
leetcode 面试题62. 圆圈中最后剩下的数字 python 剑指offer系列 5 约瑟夫环问题
leetcode 面试题62.题目描述题解题目描述题解class Solution: def lastRemaining(self, n: int, m: int) -> int: num = [i for i in range(n)] index = 0 while len(num) > 1: i...原创 2020-03-30 12:41:59 · 210 阅读 · 0 评论 -
leetcode 1162.地图分析 python BFS 宽度优先搜索
leetcode 1162.地图分析题目描述题解题目描述题解这是一道典型的应用BFS的题。 nettee的题解 写得很好,很清楚。这位大神应该是擅长java的,所以python的代码写得不是很简洁,但是思路真的很好。BFS的特点就是一层层地遍历,方便计算层数。DFS是先一条分支走到头,再下一条分支。首先,循环一遍表格,找出所有的陆地,这就作为第0层的起点。用一个变量distance记...原创 2020-03-29 10:08:44 · 295 阅读 · 0 评论 -
leetcode 208.实现Trie(前缀树) python 字典树模板
leetcode 208.实现Trie题目描述字典树模板题目描述字典树模板class Trie: def __init__(self): """ Initialize your data structure here. """ self.trie = {} def insert(self, word: st...原创 2020-03-28 21:14:55 · 517 阅读 · 0 评论 -
leetcode 820.单词的压缩编码 python set的discard方法 字典树Trie模板
leetcode 820.题目描述题解解法一解法二 set的discard解法三 字典树 Trie题目描述题解解法一刚开始的思路是,循环每个单词,和#一起拼接成字符串s,同时用一个列表记录下#的位置。当循环到新的一个单词时,就检查每个#前与当前单词同样长度的字符串,看这个字符串和当前单词是否一致。如果一致则字符串s不改变,如果不一致则字符串s添加新的单词。这种方法在[‘me’,‘tim...原创 2020-03-28 20:34:52 · 353 阅读 · 0 评论 -
leetcode 999.车的可用捕获量 python DFS
leetcode 999.题目描述题解题目描述题解思路:理解题目,找到R在哪以后,R只能往上下左右走,走几格都行,但是只要走了方向就不能改变了,因为题目要求的是在一次移动中捕获到的车的数量。所以其实就是一棵树,根节点是R,上下左右为4条树枝,每条树枝也只有一条分叉,因为确定移动方向后就不能变了。根据这个树,就想到了 DFS。DFS一般都是作为一个子函数调用的。结合代码看:因为题...原创 2020-03-26 09:28:52 · 272 阅读 · 0 评论 -
leetcode 892. 三维形体的表面积 python
leetcode 892. 三维形体的表面积题目描述题解题目描述题解思路:二话不说,先解一遍题目。思路挺简单的,就是一个个格子地去算,先算柱子的表面积:假设有n个正方体立起来,那么它本身的表面积就是 n×6-(n-1)×2,如果是0个,那么表面积就是0(这里注意要特殊设定,否则按上面的式子算,是会得到负数的)。然后每一个格子,再循环它的四个面,减去四个面与邻居贴着的面积。上代码cl...原创 2020-03-25 09:17:26 · 1308 阅读 · 0 评论 -
leetcode 面试题 17.16. 按摩师 python
leetcode 面试题 17.16 按摩师题目描述题解题目描述题解思路:分析题目,主要是要至少隔开一个数,才能相加,然后发现其实和 leetcode 746.题很像,链接:746。所以借鉴746的思想,同样可以画出和746那样的楼梯图,只不过这里要多加一个s2来存储中间相隔的那一级的值。和746的区别就是 相隔一级,所以加了一个s2。上代码class Solution: ...原创 2020-03-24 10:50:18 · 235 阅读 · 0 评论 -
leetcode 945. 使数组唯一的最小增量 python
leetcode 945.题目描述题解题目描述题解想要找思路,先自己解一遍题吧。然后发现只要遇到断节的地方就行了。比如:[3,2,1,2,1,7],1~3都有了,4没有,所以就可以把第二个2加到4,然后4就有了,就要找下一个没有出现过的数,比如5…以此类推,所以想到用一个变量记录没出现过的最小数。但是这个数其实很难找,首先从整个列表的最小值开始找起,递增一个个对比着去找,很麻烦。而且找到之...原创 2020-03-22 17:21:28 · 223 阅读 · 0 评论 -
leetcode 105.从前序与中序遍历序列构造二叉树 python 剑指offer系列 4 面试题07. 重建二叉树
leetcode 105.从前序与中序遍历序列构造二叉树题目描述题解题目描述题解思路:首先要了解前序遍历preorder(根左右),中序遍历inorder(左根右)。所以想到,整个树的根节点肯定就是preorder的第一个数—> [根 | 左右 ]。确定了整个树的根之后,看到中序遍历,咦,不久能把左子树的点和右子树的点切开了吗?----> [左 | 根 | 右](注意题目有...原创 2020-03-22 16:55:28 · 220 阅读 · 0 评论 -
leetcode 746.使用最小花费爬楼梯 python
leetcode 746.题目描述题解题目描述题解先分析一下题目,就是一次可以跳一级或跳两级,这个就和 青蛙跳台阶 那题很像,只不过这里每一级加了一个花费。思路:(结合下图看)求到达当前阶梯C的耗费时,有两种可能:从s1跳两级上来;从s2跳一级上来。那么选择跳两级还是跳一级呢?就选耗费小的那一种方法,也就是min(s1,s2). s1和s2表示到达它们所在的楼梯的最小耗费。C = c...原创 2020-03-22 14:25:19 · 256 阅读 · 0 评论 -
leetcode 面试题 03.02. 栈的最小值 python
leetcode 面试题 03.02. 栈的最小值题目描述题解题目描述题解思路:栈的特点:先进后出,在python中使用List模拟。pop和push都很简单主要是可以随时返回最小值,不能简单的只用一个变量记录最小值,因为一旦最小值被pop,那么上一个最小值,我们就不知道了…所以要再用一个栈随时记录最小值,当数据栈有数据pop时,最小值栈也跟着popclass MinStack:...原创 2020-03-20 15:54:20 · 259 阅读 · 0 评论 -
leetcode 240:搜索二维矩阵 || python 剑指offer系列 3 二维数组中的查找
leetcode 240:搜索二维矩阵 ||题目描述解法题目描述解法解法一:暴力法两个for循环,逐个遍历,找target解法二:按规律搜索矩阵的特性很重要啊!!不能白给啦每行的元素从左到右升序排列。每列的元素从上到下升序排列。思路:刚开始,我想的是从最矩阵中间的元素开始与target比较,借鉴二分搜索的思路,但是…发现只有往左上角走是变小的…就不符合二分法了,不知道 i...原创 2020-03-19 20:14:49 · 104 阅读 · 0 评论 -
leetcode 409:最长回文串 python 去吧!皮卡丘!
leetcode 409:最长回文串题目描述解法题目描述解法看完题目,感觉输入的字符串就是一个字典,从里面选字母出来构建回文串。接着思考,最长的回文串应该怎么构造呢?首先,统计一下字典各个字母的个数。然后可以这么思考,如果字典中所有字母的个数都是偶数个,那么就全要了!切两半放两边!如果 有奇数个的字母呢?肯定只能最中心放一个单独的字母吧,其它奇数个的字母,丢掉一个,变成偶数个,再全...原创 2020-03-19 09:37:23 · 191 阅读 · 0 评论 -
leetcode 70.爬楼梯 python 剑指offer系列 2 青蛙跳台阶问题
leetcode 70. 爬楼梯题目描述解法面试题10- II. 青蛙跳台阶问题题目描述解法这题和斐波那契数是一样的。怎么说呢?爬一次楼梯有两种选择:跳1级或跳2级。所以当我们想要跳到n级台阶时,可以这么考虑,我要么是从n-1级跳了1级上去的;要么是从n-2级跳了2级上去的。所以要计算跳到n级台阶有几种跳法时,就变成了跳到n-1级的跳法 + 跳到n-2级的跳法。(有人可能会问,...原创 2020-03-18 17:57:26 · 378 阅读 · 0 评论 -
leetcode 509. 斐波那契数 python 剑指offer 1
leetcode 509 斐波那契数题目描述解法题目描述解法最开始想,这道题肯定用递归啊class Solution: def fib(self, n: int) -> int: if n < 0: return None if n == 0: return 0 if n ...原创 2020-03-18 17:24:41 · 338 阅读 · 0 评论 -
leetcode 1160. 拼写单词 python (for else用法,Counter用法)
leetcode 1160. 拼写单词题目描述解法:哈希表计数题目描述解法:哈希表计数这道题很简单,有个稍微要注意的地方就是chars中的每个字母都只能用一次。思路:统计chars字符串中,各个字母的个数。再循环words,统计每个单词中各个字母出现的个数,查询每个出现字母的个数是否大于chars中的个数,如果大于就是错误,如果小于或等于,就是正确。思路就是这样,主要是leetcode官...原创 2020-03-17 10:56:04 · 293 阅读 · 0 评论 -
leetcode 面试题01.06. 字符串压缩 python
leetcode 01.06. 字符串压缩题目描述解法题目描述解法这道题很简单,就是计数有两个地方要注意:遇到新的字符后,count记得置回1因为是遇到新的不同的字符后才会触发结束计数,添加到新字符串的操作。所以计算到最后一个字符时,不会触发添加才做,计完数了就直接退出for循环,因此在for循环外面再添加一次 添加 操作。class Solution: def com...原创 2020-03-16 17:24:54 · 261 阅读 · 0 评论 -
leetcode160:相交链表 python
leetcode160:相交链表题目描述解法解法一:暴力解法解法二:转成有环链表判断题目描述编写一个程序,找到两个单链表相交的起始节点。解法解法一:暴力解法两个链表循环,直到找出相遇的那个节点!!思路简单,手法粗暴,时间超时…这里有一个要注意的点!相遇的点,不仅是Node的值相等,而应该是就是同一个节点,就是说地址也应该相等。 就像上面的示例1,很多人疑惑为什么相遇的节点不是1而是8...原创 2020-03-16 16:55:31 · 296 阅读 · 0 评论 -
leetcode 662 : 二叉树最大宽度
leetcode 662 : 二叉树最大宽度题目描述解法我的思路官方题解方法一:宽度优先搜索 BFS方法二:深度优先搜索 DFS题目描述给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间...原创 2019-12-26 16:56:16 · 298 阅读 · 0 评论 -
leetcode 450: 删除二叉搜索树中的节点
leetcode450:删除二叉搜索树中的节点题目描述解法我最初的思路官方题解第二周的刷题博客开始了,这是第一篇。首先总结一下,发现前面写的几篇还是不够思路清晰,总结不够,但是凡事总有个过程,慢慢来,慢慢进步。就像每天学半小时英语口语听力一样,现在已经比刚开始的时候进步很多了,很多句子听一次都大概能懂了,除非有一些生词,这也是坚持了近60天的成果。写博客的目的有两点,一是梳理思路,比较各种方法...原创 2019-12-23 23:51:15 · 191 阅读 · 0 评论 -
leetcode 543: 二叉树的直径
leetcode 543:二叉树的直径题目描述解法这是一道面试高频题,经常要手撕代码(牛客网看了一下大佬们对手撕代码的解释,xswl,哈哈哈我喜欢椒盐味的)。虽然难度是 简单,但是对于初级者或粗心的人有坑????,我就是????,我本质是个小菜鸡啊~题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。Given a binar...原创 2019-12-20 15:37:40 · 158 阅读 · 0 评论 -
leetcode 501: 二叉搜索树中的众数
leetcode 501:二叉搜索树中的众数题目描述我的解法题目描述给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树Given a binary search tree (BST) with dupli...原创 2019-12-19 00:36:20 · 170 阅读 · 0 评论 -
leetcode 508: 出现次数最多的子树元素和 刷题 打天下 思路+注释
leetcode 508:出现次数最多的子树元素和题目描述我的解法其他方法修改之后题目描述给出二叉树的根,找出出现次数最多的子树元素和。一个结点的子树元素和定义为以该结点为根的二叉树上所有结点的元素之和(包括结点本身)。然后求出出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的元素(不限顺序)。Given the root of a tree, you are a...原创 2019-12-17 12:32:16 · 124 阅读 · 0 评论 -
leetcode_1_两数之和 刷题 打天下 不会写至少也要看懂吧
文章目录两数之和示例功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入两数之和给定一个整数数组 nums 和一个目标值...原创 2019-03-04 18:52:11 · 395 阅读 · 0 评论 -
小米online judge_刷题_找出单独出现的数
找出单独出现的数题目及链接描述输入输出输入样例输出样例思路代码题目及链接描述给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。输入输入多个数字,每个数字以空格分开。数字数量 N < 20,输入数字的最大值小于 256.输出输出内容为只出现过唯一一次的数字输入样例10 10 11 12 12 11 16...原创 2019-02-09 18:11:10 · 326 阅读 · 0 评论