松鼠霖
松鼠霖
全部文章
题解
归档
标签
去牛客网
登录
/
注册
松鼠霖的博客
全部文章
/ 题解
(共8篇)
题解 | #左旋转字符串#
因为看到移出移入,第一反应就是pop和append,所以想到用两个stack实现,但是要注意pop的时候从头pop所以要先倒序,pop完之后再反转成为正常的顺序,代表剩下的值,再和pop出的列表拼接起来,再用''.join将列表里的str类型的值输出成字符串 :将序列中的元素以指定的字符连接生成一个...
''join()
栈
pop()
[::-1]
压栈
出栈
split()
2021-09-07
0
339
题解 | #栈的压入、弹出序列#
第一反应可能会想错,因为栈压入不是一次性全部压入,所以可以压一部分然后再出来几个,再压一部分 所以不能直接像下面这样 # -*- coding:utf-8-*- classSolution: def IsP...
栈
压栈
出栈
2021-09-06
0
380
题解 | #按之字形顺序打印二叉树#
一旦看到这种有关顺序的,第一个就要想到用栈或队列实现,有这个思路才能进一步实现、优化。 比如这道题,要求 “第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印”,显然,如果能直接利用栈或队列的特性,就能实现题目要求的各种顺序了。 算法流程: ...
栈
队列
顺序
二叉树
TreeNode
2021-09-01
0
339
题解 | #数组中出现次数超过一半的数字#
第一反应就是想到new一个dictionary出来,用key和value来保存number和对应的次数 # -*- coding:utf-8 -*- class Solution: def MoreThanHalfNum_Solution(self, numbers):...
栈
sort()
字典
哈希
2021-08-29
0
361
题解 | #包含min函数的栈#
1、要用两个栈,stack用于存储元素,mins用于存储最小值,每个位置的元素都有一个对应的最小值,也就是stack和mins的长度同步增加和减少;当需要得到目前栈中的最小值的时候,直接返回mins的栈顶元素mins[-1]即可 2、在mins栈中先添加一个最大值 float("inf...
栈
float("inf")
2021-08-29
0
328
题解 | #反转链表#
因为用python比较多,python里常用list,所以看到倒序就会想到reverse或者[::-1] 于是诞生了下面的写法,逻辑很简单,就是先把pHead的放出来装到list medium中,medium再倒序,然后再把medium里的值一个一个装进新的ListNode res里, ...
reverse
[::-1]
链表
ListNode
栈
2021-08-21
0
352
题解 | #用两个栈实现队列#
栈:先进后出 队列:先进先出 用两个栈实现队列的功能,stack1拿来push,stack2拿来pop,但是注意,stack2有剩下的值的时候要先pop,再把stack1的倒进stack2去pop,否则直接把stack1的值倒进stack2就pop的话,顺序会乱,会导致stack2最初剩...
栈
队列
2021-08-19
0
413
题解 | #从尾到头打印链表#
# -*- coding:utf-8-*- # classListNode: # def __init__(self, x): #  ...
栈
倒序
反转
reverse
[::-1]
pop()
链表
2021-08-19
0
354