编程题来源于牛客网的面经
-
让写一个二叉树最长路径和,返回这个路径和中最大和的那些节点
思路:递归。当前节点的最大贡献值(路径和) = 当前节点值 + 左子树最大贡献 + 右子树最大贡献
-
使用队列实现栈的的过程
思路:栈的add, pop操作
-
小和问题
思路:归并排序
https://blog.csdn.net/qq_34761012/article/details/104859991 -
判断平衡二叉树
思路:递归。先通过递归和hashmap获得每个节点为根的高度depth = max(leftdepth, rightdepth) + 1。然后递归判断二叉树左右子树高度差,左右子树是否分别是平衡二叉树
-
给出一个数的集合,求他们拼接起来最小的数;如{3,32,321} = 321323
思路:利用m + n > n + m, 则n排在m前面;否则m排在n前面。 比如 “3” + “32” > “32” + “3”
https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/solution/mian-shi-ti-45-ba-shu-zu-pai-cheng-zui-xiao-de-s-4/ -
概率题:AB轮流抛硬币,谁先抛到正面就赢,A先抛,问A赢的概率;
思路:
A抛一次赢的概率 = A正 = 1 2 \frac{1}{2} 2