摘要: 题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。 注:也是使用两个指针,只是这次在同一侧,向后侧移动,如果当前两个指针之内的数的和小于目标值,则后面指针右移;如果和大于目标值,则前面指针右移;如果和与目标值相等则加入保存的列表。优化提前终止为,前面指针大于目标值的一半时即可终 阅读全文
posted @ 2019-09-17 22:24 尘世中一个迷途小书童 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个递增排序的数组和一个数字s,在数组中找查找两个数,使他们的和正好为s。如果有多对,输出任意一对即可。 注:由于是有序数组,采用前后两个指针往中间走的方式,如果两个数的和小于目标,前指针后移,反之,后指针前移。代码中增加了优化,如果目标值大于两倍的后指针或小于两倍的前指针则数组中不会存在 阅读全文
posted @ 2019-09-17 22:03 尘世中一个迷途小书童 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目:一个整型数组里除两个数字之外,其他数字都出现了两次。请找出这两个只出现一次的数字。时间复杂度O(n),空间复杂度O(1)。本题代码部分是简化版,只有一个数字出现了一次,其他都是两次。 注:使用异或运算。运用异或的特点:一个数和0异或还是它本身;一个数和自己异或为0。有两个出现一次的问题,需要先 阅读全文
posted @ 2019-09-17 21:53 尘世中一个迷途小书童 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左、右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 注:求出左右子树的深度,然后求差,判断差是否否和平衡条件。一直遍历到叶子结点,如果其中任何一个节点不平衡即返回False。 阅读全文
posted @ 2019-09-17 15:57 尘世中一个迷途小书童 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一棵二叉搜索树,请找出其中第K大的节点。 注:采用中序遍历,遍历完成后取出第K个。官方给出的方案是直接取到第K个节点就停止,目前没看明白,后期会优化。 阅读全文
posted @ 2019-09-17 15:16 尘世中一个迷途小书童 阅读(146) 评论(0) 推荐(0) 编辑