松鼠霖
松鼠霖
全部文章
分类
题解(48)
归档
标签
去牛客网
登录
/
注册
松鼠霖的博客
全部文章
(共48篇)
题解 | #数组中重复的数字#
按照第一想法来就行了,建立一个dict用来保存数字是否重复,然后返回重复的数字即可 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param numbers int整型一维数组 # @return int...
哈希
字典
2021-08-31
0
298
题解 | #扑克牌顺子#
第一反应可能是用 list收集到所有数据后,sort,看能不能成顺子,但是实现起来太麻烦 其实仔细思考一下,不难发现规律 根据题意,此 55 张牌是顺子的 充分条件 如下: 除大小王外,所有牌 无重复 ; &nb...
数学逻辑
遍历
2021-08-31
0
315
题解 | #平衡二叉树#
想到要涉及到树的deepth,立刻想到了上一节做过的计算树的最大深度的函数 return max(self.depth(pRoot.left), self.depth(pRoot.right)) + 1, 此刻可以调用 算法流程: 通过比较每个节点的左右子树的最大高度差, ...
二叉树
深度
递归
2021-08-30
0
253
题解 | #二叉树的深度#
算法流程: 本质上是对树作后序遍历 每次递归每个节点 root 的左右子树,并且只得到左右子树中较大的子树深度。 当前节点 root 左右子树递归到叶子节点后,root == null,递归开始自底...
二叉树
递归
2021-08-30
0
274
题解 | #两个链表的第一个公共结点#
使用两个指针N1,N2,一个从链表1的头节点开始遍历,我们记为N1,一个从链表2的头节点开始遍历,我们记为N2。 让N1和N2一起遍历,当N1先走完链表1的尽头(为null)的时候,则从链表2的头节点继续遍历,同样,如果N2先走完了链表2的尽头,则从链表1的头节点继续遍历,也就是说,N1...
指针
链表
2021-08-30
0
293
题解 | #第一个只出现一次的字符#
最简单得想法就是把字符串里每个出现的字符都用字典 hash的形式把key(),value() 记录下来,然后 方法一:哈希表 1、遍历字符串,将字符当成哈希表中的key,value区分第一次出现和多次出现; 2、遍历字符串,拿到第一个在哈希表中的value...
哈希
find()
index()
return
2021-08-30
0
258
题解 | #连续子数组的最大和#
用now表示当前和,ans表示最大和, 如果now<0则可以舍弃了,因为可以直接取当前array[i]的值作为now,如果now>0则可以继续往下加array[i], 但是记住每次运算的时候都要取一次max(ans, now)作为ans更新 # -*- coding:utf...
动态规划
float("inf")
2021-08-29
0
234
题解 | #数组中出现次数超过一半的数字#
第一反应就是想到new一个dictionary出来,用key和value来保存number和对应的次数 # -*- coding:utf-8 -*- class Solution: def MoreThanHalfNum_Solution(self, numbers):...
栈
sort()
字典
哈希
2021-08-29
0
279
题解 | #包含min函数的栈#
1、要用两个栈,stack用于存储元素,mins用于存储最小值,每个位置的元素都有一个对应的最小值,也就是stack和mins的长度同步增加和减少;当需要得到目前栈中的最小值的时候,直接返回mins的栈顶元素mins[-1]即可 2、在mins栈中先添加一个最大值 float("inf...
栈
float("inf")
2021-08-29
0
259
题解 | #二叉树的镜像#
其实就是递归的思想, 解题步骤: 1、特判:如果pRoot为空,返回空 2、交换左右子树 3、把pRoot的左子树放到Mirror中镜像一下 4、把pRoot的右子树放到Mirror中镜像一下 5、返回根节点root class Solution: &...
递归
数值交换
二叉树
2021-08-27
0
283
首页
上一页
1
2
3
4
5
下一页
末页