牛客281174060号
牛客281174060号
全部文章
题解
归档
标签
去牛客网
登录
/
注册
Robin_Yao_Wenbin
记录刷题过程
全部文章
/ 题解
(共60篇)
题解 | #最小的K个数#
直接利用python的heapq数据结构就行,而且里面还有个 heapq.nsmallest(k , input)函数,一步搞定,建堆的时间复杂度是O(nlogn)的。 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param input int整...
Python3
2022-04-01
0
313
题解 | #滑动窗口的最大值#
首先用了暴力解法,没法通过该题,然后对暴力解法做了改进,即遍历每个滑动窗口,记录最大值和最大值所在的索引,然后遍历下一个窗口,如果新进来的那个元素大于原先的最大值,则将最大值和索引更新,如果最大值元素是原来窗口中的元素,且不是第一个,则不变,如果最大值是原来窗口第一个元素,则重新找一下最大值。这样确...
Python3
2022-03-31
0
276
题解 | #有效括号序列#
遍历字符串,把字符串入栈,看栈顶前两个元素是否组成完成括号,若是则pop出这两个元素,依次遍历完字符串,看栈是否为空,是的话就是True,否则是False。 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param s string字符串 # @...
Python3
2022-03-31
0
315
题解 | #包含min函数的栈#
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack = [] self.minv = None def push(self, node): # wr...
Python3
2022-03-30
0
289
题解 | #合并二叉树#
使用递归的方式解决该题,两个指针分别指向两棵树对应的同一结点,然后先序遍历两棵树,唯一需要相对于先序遍历改进的就是要判断下子节点是否存在。如果先序遍历过程中两棵树的结点都非空,那么把值相加,然后看两棵树的左子树是否存在,若都存在或都不存在则不用管,如果一棵树存在但是另一棵树不存在,那么就要给不存在的...
Python3
2022-03-29
0
262
题解 | #对称的二叉树#
用了两种方法解题: 先说第一种,用中序遍历的方法遍历一遍,然后将结果翻转看是否不变,如果是则是对称,否则不对称,但是这种方法存在一些情况会错误,因此需要加一些特殊情况的判断。 第二种方法,传两棵树进去,这两颗树是树A和树A对称翻转后的树B,因此只需要判断下树A和树B是否一致就可以了。但是我们直接翻转...
Python3
2022-03-29
0
324
题解 | #二叉搜索树与双向链表#
用list存储中序遍历结果在顺序连接起来,但是这样做空间复杂度是O(N),看了解题思路,需要在中序遍历过程中改变指针指向,之后来尝试下。 class TreeNode: def __init__(self, x): self.val = x self.left...
Python3
2022-03-28
0
366
题解 | #二叉树中和为某一值的路径(一)#
DFS递归遍历这棵树,然后去判断到该结点的累计值是否等于target值,然后设置一个标签,去判断是否成功。 class TreeNode: def __init__(self, x): self.val = x self.left = None ...
Python3
2022-03-28
0
349
题解 | #二叉树的最大深度#
DFS结题即可,实际上DFS和先序遍历是等价的,先序遍历是先读root,在读左右子树,DFS是先不停的去读左子树,然后不断返回到第一个有右子树的结点,读一下右子树,在返回,依次类推,两者是一样的。 class TreeNode: def __init__(self, x): ...
Python3
2022-03-27
0
260
题解 | #按之字形顺序打印二叉树#
此题可以直接用BFS求解,先用BFS将每一层的结点存起来,然后用个if判断下是从左往右打印还是从印往左打印就可以了,把BFS得到node list转化成value list即可。 class TreeNode: def __init__(self, x): self.val ...
Python3
2022-03-27
0
314
首页
上一页
1
2
3
4
5
6
下一页
末页