摘要: 题目描述 给了一个数组,数组值是0<=x<=1的小数 再给了一个值ext,ext可以让以上每个位小数的分子和分母都+1 为怎么分配ext,可以让总和 / 个数最大? f1-优先队列 基本分析 可以看出是优先队列,队头需要怎么取?考虑增量,每次将1加在哪个分数中会有最大的增量? 怎么实现以上思想?因为 阅读全文
posted @ 2023-04-06 20:11 zhangk1988 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给一个整数数组nums和整数x 需要从数组的左边或者右边删除元素,然后用x减去删除的元素 问如果x刚好成删到0,怎么删最短? f1-反向思考+双指针 基本分析 反向思考?找一个最长的子数组满足和= sum(nums) - x 为啥可以双指针?(1)元素都是整数,序列和是单调的;(2)元素连 阅读全文
posted @ 2023-04-06 19:26 zhangk1988 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给一个数组,再给一个值的范围[l, r], 问最大值在[l, r]之间的子数组有多少个? f1-双指针 基本分析 如果枚举子数组的右端点i,会有几种情况?(1)arr[i] > right; (left <= arr[i] <= right; (3)arr[i] < left 假如枚举到右 阅读全文
posted @ 2023-04-04 23:48 zhangk1988 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目描述 数字华容道,只有6个数字 问把0换到最后最少需要多少步? f1-构建状态表示的mask + bfs 基本分析 bfs的时候,当前状态怎么表示?把矩阵拉平,变成字符串 怎么快速可以得到某个字符串可以变成哪些字符串?(1)怎么快速知道不同情况下0周围的索引?枚举余处理(2)怎么知道不同mask 阅读全文
posted @ 2023-04-04 18:37 zhangk1988 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给一个二维矩阵,里面的元素不是0就是1 可以通过翻转完成0-1变换,翻转的限制是周围相邻的点也要跟着变 问最终反转成全0的形式的最小次数? f1-状态压缩+bfs 基本分析 看大最少翻转次数可以联想到什么?bfs 直接bfs有啥问题?(1)矩阵的形式怎么存?通过状态压缩将二维转化为1维度 阅读全文
posted @ 2023-04-04 17:11 zhangk1988 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给一个数组arr,起点是0,终点是n-1 有3种选择:可以退一步、进一步、跳到值相等的位置 问跳到终点的最少操作次数? f1 哈希表+bfs 基本分析 为什么是bfs?求从起点到终点的最短路 图是什么?当前节点到前、后、等值可跳的索引 怎么获取x到所有等值点索引y的映射关系?哈希表预处理 阅读全文
posted @ 2023-04-04 13:08 zhangk1988 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了一些点的连通关系,每个点的值都不同,每个点上都哟一个附加的标签(小写字母) 问:每个节点i的子树中标签和i相同的节点数 f1-无向图后序遍历 基本分析 怎么根据连接关系进行遍历?先建图 遍历的时候没有方向,怎么保证不会回去?加一个父节点的参数,保证不会往前走? 怎么维护当前节点的信息? 阅读全文
posted @ 2023-04-04 11:22 zhangk1988 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了一个数组,元素都是正的 给了数组分数的定义:子数组的和*数组长度 问分数严格小于k的非空子数组数目? f1-双指针 基本分析 能挖掘出啥性质?(1)数组都是正的,且另一个因子是长度相关,对每个右端点j,找到最远的左端点i时候,[i+1, j],[i+1,j]...[j, j]都是满足的 阅读全文
posted @ 2023-04-04 10:25 zhangk1988 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了一个矩阵grid,里面的数字有正有负 问从左上角到右下角的最大乘积? f1-dp 基本分析 这里有正又负会有啥问题?可能最小的负*负数会产生最大的正数,所以需要维护两个值,最大的路径积和最小的路径积 怎么进行转移?只能从左边或者上面转移来,需要对grid[i][j]的值按照正负分类讨论 阅读全文
posted @ 2023-04-03 23:23 zhangk1988 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了两个数组,可以把数组中相同的数组连起来,限制条件是连线不能相交 问最多能连多少根? f1-最长公共子序列 基本分析 为啥不能贪心?例如134和341,如果1一定要往后取,只能1,最好的结果是2 怎么变形?找到两个字符串的LCS,可以满足索引的限制要求 为啥在求LCS的时候会存在重复情况 阅读全文
posted @ 2023-04-03 22:38 zhangk1988 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了一个二叉树,给了不足节点的定义(所有经过该节点的从跟到叶子的路径和如果都小于limt) 需要删除所有的不足节点,返回最终的根节点 f1 分治+dfs 基本分析 从树上删除一个点,怎么操作方便?父节点删除比自己删除自己方便 以上信息给了什么启示?dfs中给父节点返回自己可以删除的信息,父 阅读全文
posted @ 2023-04-03 21:59 zhangk1988 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了一个二叉树,树上所有节点的值不同 再给了两个点的值表示起点和终点,问从起点到终点的最短路的方向? f1 dfs预处理+最近公共祖先 基本分析 没有给出起点和终点是哪个点,怎么拿到?一次从root的dfs s到e的最短路径是哪一条?从公共祖先分别下来的 怎么从s和e求到公共祖先的path 阅读全文
posted @ 2023-04-03 16:30 zhangk1988 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给了n个项目,每个项目有不同的工作阶段。 限制是每周只能做一个阶段,相邻的两周不能看同一个项目 问最多能看多少周? f1-贪心 基本分析 最好的分配方式?最长的分为一类,其余一类,用其余的来分隔最长的 会有哪些情况?s > rest + 1和 s <= rest + 1的情况 代码 cla 阅读全文
posted @ 2023-04-03 12:12 zhangk1988 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个数组中找出长度k的子序列,使其字典序最小? f1-单调栈 基本分析 字典序最小肯定是单调不减最好,但是怎么保证序列的长度是k?需要删除的个数是n-k,利用单调栈同时维护这个信息,超过了就不再维护有序性了。 stk中最终的结果有没有可能多于k?可能的,比如本身就是单调不减,会在stk中 阅读全文
posted @ 2023-04-03 11:53 zhangk1988 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 题目描述 有n中面值的货币,每种有无限个,问组成m的方案总数? f1-xxx 完全背包求方案数 完全背包裸题 代码 #include <iostream> #include <algorithm> using namespace std; typedef long long LL; const in 阅读全文
posted @ 2023-03-30 15:26 zhangk1988 阅读(13) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示