随笔分类 -  牛客剑指offer

摘要:思路:跟上一篇的之字形打印思路类似,只不过不用隔层翻转打印 阅读全文
posted @ 2019-08-13 08:50 Dolisun 阅读(245) 评论(0) 推荐(0)
摘要:思路:之前遇到过层序打印二叉树的题,使用一个队列存储每一层的节点,当一个节点出队列时,他的左右孩子入队列。那么这个问题是在这个问题的基础上加了点限制,因此我们也可以在之前的思路上稍作修改。 首先用curLayer作为队列存储当前层的所有节点,把这一层标记成0或者1, 再用nextLayer层存储从c 阅读全文
posted @ 2019-08-12 21:48 Dolisun 阅读(758) 评论(0) 推荐(0)
摘要:```python # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def isSymmetrical(self... 阅读全文
posted @ 2019-08-12 16:37 Dolisun 阅读(167) 评论(0) 推荐(0)
摘要:思路: 分4种情况: 1. 当该节点存在右子树时,那么下一个节点一定在右子树中产生 这种情况下又分成两种情况: (1)右子树不存在左分支,那么要找的下一个节点就是右子树的根节点。 (2)右子树中存在左分支,那么不停的寻找左分支的左分支就可以了。 2.当该节点不存在右子树时,那么下一个节点一定在该节点 阅读全文
posted @ 2019-08-12 15:12 Dolisun 阅读(596) 评论(0) 推荐(0)
摘要:思路:因为重复的节点都要删除,因此需要标记重复开始前的上一个节点,又因为头结点有可能是重复的节点,为了操作方便,我们可以再链表前面设置一个空节点作为头结点,因此需要设置3个指针,第一个head指向头结点。第二个p用来标记重复节点的前面一个节点,第三个cur用来寻找重复的节点,一旦找到p就不移动了,c 阅读全文
posted @ 2019-08-12 09:03 Dolisun 阅读(1053) 评论(0) 推荐(0)
摘要:思路:转自https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f79a38e4 链接:https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f 阅读全文
posted @ 2019-08-11 22:39 Dolisun 阅读(705) 评论(0) 推荐(0)
摘要:思路:参考https://blog.csdn.net/u010005281/article/details/80200398 阅读全文
posted @ 2019-08-11 20:02 Dolisun 阅读(279) 评论(0) 推荐(0)
摘要:思路:从后往前遍历字符串,先不处理第一个字符,因为他可能是一个表示正负符号的字符。等除第一个都处理完了,再处理第一个字符就可以了 阅读全文
posted @ 2019-08-11 18:48 Dolisun 阅读(990) 评论(0) 推荐(0)
摘要:思路:使用递归f(n) = f(n 1) + n, 但是不能使用if进行递归出口的控制,因此利用python中and的属性,即and判断都为真的话输出and后面的那个数字 阅读全文
posted @ 2019-08-11 12:50 Dolisun 阅读(2921) 评论(0) 推荐(0)
摘要:思路:用一个指针,循环遍历列表,模拟每个在场孩子报数,用cnt计数,当报到m 1后,将这个人出列,cnt置为0,剩下的人继续报数 阅读全文
posted @ 2019-08-11 11:23 Dolisun 阅读(440) 评论(0) 推荐(0)
摘要:思路:看是否连续就是看中间缺少的部分能否用大小王,即0来填充,因此只需要比较0的个数和中间缺少的个数就行了,如果中间缺少的比0的数目多,即大小王的个数不足以将缺少的填充,那么就不连续了 阅读全文
posted @ 2019-08-11 10:46 Dolisun 阅读(306) 评论(0) 推荐(0)
摘要:思路:用到了split join等内置函数,之后再补充不用内置函数的方法吧 方法2: 阅读全文
posted @ 2019-08-11 10:05 Dolisun 阅读(578) 评论(0) 推荐(0)
摘要:思路:左移n位就是把前n位移动到字符串后面去 阅读全文
posted @ 2019-08-10 18:52 Dolisun 阅读(378) 评论(0) 推荐(0)
摘要:思路:参考https://blog.csdn.net/qq_41822235/article/details/82109081 里面的方法4 同时因为python2.7的原因,除法会省去小数点后面的数字,if语句那里加了一句i j == 2 tsum, 阅读全文
posted @ 2019-08-10 16:36 Dolisun 阅读(207) 评论(0) 推荐(0)
摘要:思路:用一个字典统计出每个数字出现的次数,然后遍历字典,找到只出现一次的 阅读全文
posted @ 2019-08-10 13:19 Dolisun 阅读(1367) 评论(0) 推荐(0)
摘要:思路:平衡二叉树的左右子树的深度相差不能超过1, 因此可以利用上一题求二叉树的深度的函数,对左右子树求最大深度,如果深度小于1,那么就是平衡二叉树了 阅读全文
posted @ 2019-08-10 11:25 Dolisun 阅读(523) 评论(0) 推荐(0)
摘要:思路:用递归思想,不停往下找节点,找到一个节点加1 阅读全文
posted @ 2019-08-10 10:46 Dolisun 阅读(205) 评论(0) 推荐(0)
摘要:思路:直接遍历一遍,出现就加1 阅读全文
posted @ 2019-08-05 20:21 Dolisun 阅读(433) 评论(0) 推荐(0)
摘要:思路:因为当出现一个公共节点时,后面的节点都相同(因为链表的后继节点是唯一的,也就表明公共节点的后继一定相同,以此类推,后面的节点都相等),因此可以将所有节点放入栈中,从后往前看,直到不相同的点,那么他的前一个节点就是第一个公共节点了。 阅读全文
posted @ 2019-08-05 19:56 Dolisun 阅读(624) 评论(0) 推荐(0)