面试题
编程鸭
这个作者很懒,什么都没留下…
展开
-
算法进阶面试题07——求子数组的最大异或和(前缀树)、换钱的方法数(递归改dp最全套路解说)、纸牌博弈、机器人行走问题
第一题给定一个数组,求子数组的最大异或和。一个数组的异或和为,数组中所有的数异或起来的结果。简单的前缀树应用暴力方法:先计算必须以i结尾的子数组的异或和,然后再计算机i+1的,以此类推...最暴力的解 public static int getMaxEor1(int[] nums) { int maxEor = ...原创 2019-05-29 14:20:13 · 373 阅读 · 0 评论 -
算法进阶面试题06——实现LFU缓存算法、计算带括号的公式、介绍和实现跳表结构
第一题上一题实现了LRU缓存算法,LFU也是一个著名的缓存算法自行了解之后实现LFU中的set 和 get要求:两个方法的时间复杂度都为O(1)LFU根据get、set操作次数决定的优先级。同样次数,最不经常访问的先出去。实现思路:建立一个次数链,每个次数再链接上一个双向链。(两个双链表)Put和Get的时候,先检查是否存在如果没有,p...原创 2019-05-29 14:25:31 · 997 阅读 · 1 评论 -
算法进阶面试题05——树形dp解决步骤、返回最大搜索二叉子树的大小、二叉树最远两节点的距离、晚会最大活跃度、手撕缓存结构LRU
第一题:给定一棵二叉树的头节点head,请返回最大搜索二叉子树的大小二叉树的套路统一处理逻辑:假设以每个节点为头的这棵树,他的最大搜索二叉子树是什么。答案一定在其中第一步,列出可能性(最难部分)1、可能来自左子树上的某课子树2、可能来自右子树上的某课子树3、整颗都是(左右子树都是搜索二叉树并且左子树最大小于该节点,右子树最小大于该节点)...原创 2019-05-29 14:26:56 · 305 阅读 · 0 评论