摘要:
##从暴力递归到动态规划 ##算法学习(16)中的纸牌问题改成动态规划 给定一个整型数组arr,代表数值不同的纸牌排成一条线,纸牌上的数值代表分数。玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的纸牌,玩家A和玩家B都绝顶聪明。请返回最后获胜者的分数。 阅读全文
posted @ 2022-08-06 13:36
小肉包i
阅读(26)
评论(0)
推荐(0)
摘要:
#从暴力递归到动态规划 优化顺序:暴力递归->记忆化搜索->严格(多维)表结构(dp) 记忆化搜索不考虑依赖关系,严格(多维)表结构需要规定每一个状态的依赖顺序。在某些问题上记忆化搜索和严格(多维)表结构拥有相同的时间复杂度,但是严格(多维)表结构可以进一步优化,当你把每一个位置的依赖关系都整理出来 阅读全文
posted @ 2022-08-04 17:27
小肉包i
阅读(48)
评论(0)
推荐(0)
摘要:
#位运算 ##题目1:a和b返回大的,要求不能有比较 基本思路:利用a-b的差值的符号来判断谁大谁小 ###不考虑溢出情况的C++代码 int flip(int n); //输入0或1,1变0,0变1 int sign(int n); //拿到n的符号,正数返回1,负数返回0 int getMax( 阅读全文
posted @ 2022-08-03 22:06
小肉包i
阅读(16)
评论(0)
推荐(0)
摘要:
#大数据题目的解题技巧 ##哈希函数可以把数据按照种类均匀分流 万能方法,详见算法学习(17) ##布隆过滤器用于集合的建立与查询,并可以节省大量空间 详见算法学习(17) ##一致性哈希解决数据服务器的负载管理问题 详见算法学习(17) ##利用并查集结构做岛问题的并行计算 详见算法学习(18) 阅读全文
posted @ 2022-08-03 15:48
小肉包i
阅读(39)
评论(0)
推荐(0)
摘要:
#Morris遍历 ##什么是Morris遍历 Morris遍历是一种二叉树的遍历算法,它可以做到时间复杂度O(N),额外空间复杂度O(1)。它的做法是通过使用叶节点的空指针来完成遍历,除了几个变量之外,不用额外申请空间,从而做到额外空间复杂度O(1) ##Morris遍历流程 假设来到当前节点cu 阅读全文
posted @ 2022-08-03 09:49
小肉包i
阅读(158)
评论(0)
推荐(0)
摘要:
#树形DP补充 ##树形dp套路使用前提 如果题目求解目标是S规则,则求解流程可以定成以每一个节点为头节点的子树在S规则下的每一个答案,并且最终答案一定在其中 ##树形DP的套路步骤 以某个节点X为头节点的子树中,分析答案有哪些可能性,并且这种分析是以X的左子树、X的右子树和X整棵树的角度来考虑可能 阅读全文
posted @ 2022-08-03 09:48
小肉包i
阅读(21)
评论(0)
推荐(0)
摘要:
#滑动窗口 两个指针,L、R,可以L动也可以R动,L不要超过R,L到R之间是窗口内,R动进,窗口变大,L动出,窗口变小。 ##[题目] 有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 例如,数组为[4,3,5, 4,3,3, 6,7],窗口大小为3时: 阅读全文
posted @ 2022-08-01 19:44
小肉包i
阅读(52)
评论(0)
推荐(0)
摘要:
#Manacher算法 ##找到一个字符串的最长回文子串 如果什么处理也不做,暴力解,从0开始往后走,每到一个位置前后找回文,记录回文长度,最后返回最大的,这样会出现一个问题,如果回文的长度是偶数,没法求abba这种格式的回文,所以要改进。 改进方法就是把所有两个字符中间、字符串的最左边、最右边都加 阅读全文
posted @ 2022-08-01 16:49
小肉包i
阅读(26)
评论(0)
推荐(0)
浙公网安备 33010602011771号