leetcode-host
编程题:
逆时针打印数组 (剑指 offer 和 leetcode54 都有的常见题,常为顺时针打印数组) 给先序遍历重构二叉树 (例如输入为 124XXX3XX,X 表示空,无叶子节点) 有随机数 0-2 0-3 0-4 构建 100 的随机数 (使用 0-3 和 0-4 构建 20 与 0-4 构建的 5 形成 100 的随机数)
智力题:
49 个人中至少几个人生日是同一月 两个人只握一次手,一共握了 45 次,问一共几个人(10 人)
编程题:
数组合并(leetcode88)【简单】 区间合并,也叫线段合并(leetcode56)【中等】 以上内容+能否完全覆盖,题目为: 单个线段[2,6]可称为完全覆盖[4,6],现有两组线段 AB,每组中有一定数目的线段,判断 A 组能否完全覆盖 B 组 例如:
[[1, 3], [2, 6]]
[[1, 4], [4, 5]]
True
[[1, 2], [4, 7]]
[[2, 5], [6, 7]]
False
非递归中序遍历
重建二叉树
根据前序和中序遍历,返回后序遍历
用两个队列实现一个栈
解法:一个队列放入,一个队列输出。因为栈是后入先出,所以把 q1 的元素依次删除并插入 q2,再删除最后一个元素。然后 q1 赋值为 q2,q2 初始化为空,这样才能不断删除。
问题 1:交叉熵公式
解答:交叉熵公式如下:
这里公式定义,x、y 都是表示概率分布。其中 x 是正确的概率分布,而 y 是我们预测出来的概率分布,这个公式算出来的结果,表示 y 与正确答案 x 之间的错误程度(即:y 错得有多离谱),结果值越小,表示 y 越准确,与 x 越接近。
问题 3:对后验概率估计的思考
解答:对于很多条件概率问题,可以等价于
问题 4:针对归一化问题的数据线性排序思考
解答:基数排序是一种针对该问题很好的解决方式,往往因为其平均复杂度为
问题 5:带有容错的最长公共子串如何实现(动态规划问题)
解答: 暂时还没想到。
问题 6:剑指 Offer 原题,螺旋遍历
解答:主要找规律找出循环条件:
https://github.com/DWCTOD/interview/blob/master/detail/%E4%BD%9C%E4%B8%9A%E5%B8%AE%20%E8%A7%86%E8%A7%89%E7%AE%97%E6%B3%95%E5%B7%A5%E7%A8%8B%E5%B8%88%20%E9%9D%A2%E7%BB%8F%EF%BC%882020%E5%B1%8A%EF%BC%89.md
第一题 leetcode29 题 第二题: 给定 n,用 1 到 n 作为二叉搜索树的节点值,返回 n 个点所能组成的二叉搜索树的个数 如 n=3
大数乘法
https://www.nowcoder.com/discuss/353156289771544576