随笔分类 -  leetcode-题目分类

摘要:题目描述 给了一个单子数组words 给了字母前身的定义:A在任何地方加一个字符,凑成B,A就是B的前身 问从words中怎么选,能构成最长的词链? f1-记忆化搜索 基本分析 怎么找到子问题?假如s是词链的最后一个单词,那么枚举去掉s某位后的构成新的词s-1,s-1就是s的更小一级的子问题 dfs 阅读全文
posted @ 2023-04-27 20:22 zhangk1988 阅读(23) 评论(0) 推荐(0)
摘要:题目描述 给了一个只包含0和1的字符串 现在有俩操作能选(1)把00换成10;(2)把10换成01 问怎么操作能得到最大的字符串? f1-找规律+贪心 基本分析 为啥会有10换成01的操作?1010-1001-1101,把第一个0后面的1都挪到最后面,变成多个1+多个0+多个1的组合。然后把多个1按 阅读全文
posted @ 2023-04-13 15:36 zhangk1988 阅读(48) 评论(0) 推荐(0)
摘要:题目描述 给了列表异或和的定义 现在的列表是arr1和arr2构造出来的,元素对是arr[i] and arr[j] 问以上列表的异或和? f1-依次确定答案的每一位 基本分析 为什么考虑计算答案的每一位?表达式只包含位运算(按位与 和按位异或) 具体怎么计算?要知道答案的第k为是1还是0->分别计 阅读全文
posted @ 2023-04-13 14:36 zhangk1988 阅读(28) 评论(0) 推荐(0)
摘要:题目描述 一个盒子有四种属性,能否打开、糖果数、钥匙、内含盒子 给你初始盒子的索引,问能拿到多少糖果? f1-模拟 + bfs 基本分析 一个索引需要有哪些状态?能不能打开;是不是有了这个盒子;这个盒子打开过没有? 怎么定义这些状态?数组 bfs的规则? (1)最初入队?如果盒子能打开,把盒子入队( 阅读全文
posted @ 2023-04-12 20:30 zhangk1988 阅读(28) 评论(0) 推荐(0)
摘要:题目描述 n个顶点构成了无向树 顶点编号从1到n 给了跳跃规则(1)跳相临边(2)不往回跳(3)多个选择概率相同(4)叶子结点时候就停下来 问t秒后跳到目标顶点target上的概率? f1-dfs 基本分析 怎么保证不往回跳?dfs时候传入父节点参数 dfs怎么定义?当前在x,父节点是fa,步数是s 阅读全文
posted @ 2023-04-12 16:44 zhangk1988 阅读(28) 评论(0) 推荐(0)
摘要:题目描述 给一个整数数组 问怎么选数字,可以让能得到的结果最大,同时这个接结果需要是3的倍数? f1 分类讨论+ 贪心 基本分析 怎么判断能不能被3整除?和 % 3 == 0 怎么判断该从数组中删掉哪些数字?(1)和%3==1, 删最小的余1的数字,不行删俩最小的余2的数字;(2)和% 3 == 2 阅读全文
posted @ 2023-04-10 17:54 zhangk1988 阅读(49) 评论(0) 推荐(0)
摘要:题目描述 给了一个正整数k,表示长度是k的所有回文数字 再给了和很多q,问第q小的数字是多少? f1 数学关系+构造 基本分析 从q之间的相互关系考虑还是单独考虑某个q和结果的关系?后者 长度是k的回文数字有啥特性?前一半数字是固定的,half = k + 1 >> 2, str[num][:hal 阅读全文
posted @ 2023-04-09 09:56 zhangk1988 阅读(32) 评论(0) 推荐(0)
摘要:题目描述 给了一个字符串,只有* 和 | ,分别表示盘子和蜡烛 再给了很多查询,对某个查询[x, y],问在区间内的且在蜡烛之间的盘子的个数? f1-预处理+前缀和 基本分析 1个字符多个查询可以考虑什么?预处理 对每个查询x,y需要知道什么?索引>=x的最近的盘子位置;索引<=y的最近的盘子的位置 阅读全文
posted @ 2023-04-07 17:19 zhangk1988 阅读(17) 评论(0) 推荐(0)
摘要:题目描述 给了一个二维矩阵,矩阵的元素不是0就是1 你可以进行任意次操作,让某行或者某列进行翻转 元素的得分是每一行二进制的和 问怎么操作可以让总得分最大? f1 贪心+计算增量 基本分析 为啥可以贪心?(1)对每行来说,首位肯定是1最好,遮掩某些行需要翻转,某些不翻;(2)对同一列来说,大家的优先 阅读全文
posted @ 2023-04-06 20:43 zhangk1988 阅读(20) 评论(0) 推荐(0)
摘要:题目描述 给了一个数组,数组值是0<=x<=1的小数 再给了一个值ext,ext可以让以上每个位小数的分子和分母都+1 为怎么分配ext,可以让总和 / 个数最大? f1-优先队列 基本分析 可以看出是优先队列,队头需要怎么取?考虑增量,每次将1加在哪个分数中会有最大的增量? 怎么实现以上思想?因为 阅读全文
posted @ 2023-04-06 20:11 zhangk1988 阅读(18) 评论(0) 推荐(0)
摘要:题目描述 给一个整数数组nums和整数x 需要从数组的左边或者右边删除元素,然后用x减去删除的元素 问如果x刚好成删到0,怎么删最短? f1-反向思考+双指针 基本分析 反向思考?找一个最长的子数组满足和= sum(nums) - x 为啥可以双指针?(1)元素都是整数,序列和是单调的;(2)元素连 阅读全文
posted @ 2023-04-06 19:26 zhangk1988 阅读(38) 评论(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 阅读(24) 评论(0) 推荐(0)
摘要:题目描述 数字华容道,只有6个数字 问把0换到最后最少需要多少步? f1-构建状态表示的mask + bfs 基本分析 bfs的时候,当前状态怎么表示?把矩阵拉平,变成字符串 怎么快速可以得到某个字符串可以变成哪些字符串?(1)怎么快速知道不同情况下0周围的索引?枚举余处理(2)怎么知道不同mask 阅读全文
posted @ 2023-04-04 18:37 zhangk1988 阅读(21) 评论(0) 推荐(0)
摘要:题目描述 给一个二维矩阵,里面的元素不是0就是1 可以通过翻转完成0-1变换,翻转的限制是周围相邻的点也要跟着变 问最终反转成全0的形式的最小次数? f1-状态压缩+bfs 基本分析 看大最少翻转次数可以联想到什么?bfs 直接bfs有啥问题?(1)矩阵的形式怎么存?通过状态压缩将二维转化为1维度 阅读全文
posted @ 2023-04-04 17:11 zhangk1988 阅读(32) 评论(0) 推荐(0)
摘要:题目描述 给一个数组arr,起点是0,终点是n-1 有3种选择:可以退一步、进一步、跳到值相等的位置 问跳到终点的最少操作次数? f1 哈希表+bfs 基本分析 为什么是bfs?求从起点到终点的最短路 图是什么?当前节点到前、后、等值可跳的索引 怎么获取x到所有等值点索引y的映射关系?哈希表预处理 阅读全文
posted @ 2023-04-04 13:08 zhangk1988 阅读(20) 评论(0) 推荐(0)