摘要: 题目描述 给了一个矩阵grid,里面的数字有正有负 问从左上角到右下角的最大乘积? f1-dp 基本分析 这里有正又负会有啥问题?可能最小的负*负数会产生最大的正数,所以需要维护两个值,最大的路径积和最小的路径积 怎么进行转移?只能从左边或者上面转移来,需要对grid[i][j]的值按照正负分类讨论 阅读全文
posted @ 2023-04-03 23:23 zhangk1988 阅读(33) 评论(0) 推荐(0)
摘要: 题目描述 给了两个数组,可以把数组中相同的数组连起来,限制条件是连线不能相交 问最多能连多少根? f1-最长公共子序列 基本分析 为啥不能贪心?例如134和341,如果1一定要往后取,只能1,最好的结果是2 怎么变形?找到两个字符串的LCS,可以满足索引的限制要求 为啥在求LCS的时候会存在重复情况 阅读全文
posted @ 2023-04-03 22:38 zhangk1988 阅读(16) 评论(0) 推荐(0)
摘要: 题目描述 给了一个二叉树,给了不足节点的定义(所有经过该节点的从跟到叶子的路径和如果都小于limt) 需要删除所有的不足节点,返回最终的根节点 f1 分治+dfs 基本分析 从树上删除一个点,怎么操作方便?父节点删除比自己删除自己方便 以上信息给了什么启示?dfs中给父节点返回自己可以删除的信息,父 阅读全文
posted @ 2023-04-03 21:59 zhangk1988 阅读(35) 评论(0) 推荐(0)
摘要: 题目描述 给了一个二叉树,树上所有节点的值不同 再给了两个点的值表示起点和终点,问从起点到终点的最短路的方向? f1 dfs预处理+最近公共祖先 基本分析 没有给出起点和终点是哪个点,怎么拿到?一次从root的dfs s到e的最短路径是哪一条?从公共祖先分别下来的 怎么从s和e求到公共祖先的path 阅读全文
posted @ 2023-04-03 16:30 zhangk1988 阅读(22) 评论(0) 推荐(0)
摘要: 题目描述 给了n个项目,每个项目有不同的工作阶段。 限制是每周只能做一个阶段,相邻的两周不能看同一个项目 问最多能看多少周? f1-贪心 基本分析 最好的分配方式?最长的分为一类,其余一类,用其余的来分隔最长的 会有哪些情况?s > rest + 1和 s <= rest + 1的情况 代码 cla 阅读全文
posted @ 2023-04-03 12:12 zhangk1988 阅读(21) 评论(0) 推荐(0)
摘要: 题目描述 在一个数组中找出长度k的子序列,使其字典序最小? f1-单调栈 基本分析 字典序最小肯定是单调不减最好,但是怎么保证序列的长度是k?需要删除的个数是n-k,利用单调栈同时维护这个信息,超过了就不再维护有序性了。 stk中最终的结果有没有可能多于k?可能的,比如本身就是单调不减,会在stk中 阅读全文
posted @ 2023-04-03 11:53 zhangk1988 阅读(32) 评论(0) 推荐(0)