摘要: 本题我们要快速的判断一个点在拓扑序中是不是另一个点的前驱,先求出拓扑序,在利用二进制代表集合来进行前驱的判断。 class Solution { public: const static int N = 110, M = N * N; int h[N], e[M], ne[M], idx; int 阅读全文
posted @ 2023-09-13 09:56 深渊之巅 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 本题是简单的模拟,但是对于多维数据的表示(x, y)本题更想探究一下array和tuple之间的区别。 array版本 class Solution { public: bool checkValidGrid(vector<vector<int>>& grid) { if(grid[0][0]) r 阅读全文
posted @ 2023-09-13 09:53 深渊之巅 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 思想 a ~ b区间可以转换为 0 ~ b - 0 ~ (a - 1) 用这种前缀和的思想,可以快速枚举所有合格条件的自区间。 class Solution: def subarraySum(self, nums: List[int], k: int) -> int: m = dict() m[0] 阅读全文
posted @ 2023-09-11 22:46 深渊之巅 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 反悔贪心,顾名思义,就是可以反悔的贪心算法。 反悔贪心有两种实现方式:一种是利用堆实现,成为反悔堆;另一种是通过差值构造来构造出反悔自动机,让任何一种贪心策略都可以得到最优解。 本题我们可以先对lastday进行排序,之后遍历列表若能加入堆,直接加入;若不能加入,则看一看堆顶元素和当前元素的关系,若 阅读全文
posted @ 2023-09-11 19:23 深渊之巅 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 经典拓扑排序的应用,用拓扑排序的算法看看原图中是否有一个合法的拓扑序。 class Solution { public: const static int N = 2010, M = 5010; int h[N], e[M], ne[M], idx; int d[N], q[N]; void add 阅读全文
posted @ 2023-09-09 10:13 深渊之巅 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 环图由一些简单的链和环组成。 对于有向图,所有点入度与出度 <= 2,就是一个环图 对于无向图,所有点的度数 <= 2,就是一个环图 环图中所有的链与环互不相交。 常见问题:环的大小,个数,路径 这种无序变有序的问题,建图方法:把起点向终点连一条边。每个点入度出度都是1,所以建成的图中只存在若干简单 阅读全文
posted @ 2023-09-08 17:32 深渊之巅 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 我们用栈同时维护当前字符串和倍数以及要加倍的字符串 当遇到"["时,我们保存当前字符串,即将当前字符 cres 串入栈; 当遇到"]"时,res = cres + 倍数 * 应加倍的字符串 class Solution: def decodeString(self, s: str) -> str: 阅读全文
posted @ 2023-09-05 13:14 深渊之巅 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 本题为八方向枚举,且结合枚举状态时的直角拐弯。 如图,假设我们正在枚举1号方向,它可以向7和3方向转弯,观察其二进制规律,第一位取反,及d ^ 2, 第2位为0和1, 枚举详见代。 #include<iostream> #include<cstdio> #include<cstring> #incl 阅读全文
posted @ 2023-09-04 18:27 深渊之巅 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 1654. 到家的最少跳跃次数 本题目是经典bfs, 我们在进行广搜的时候,不仅要记录某个点是否走过,当前位置和步数,还要记录上一次是否是向后走,来决定此时是否能向后走。 由于广搜有最短的性质,所以某个点只能入队一次。 以往在记录多维信息时候,常用pair嵌套与结构体,有点不方便;从本题题解中学到了 阅读全文
posted @ 2023-08-30 17:59 深渊之巅 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 2833. 距离原点最远的点 本题要求最远的距离,所有‘_’必须全为左或全为右。利用前缀和的思想看看L多还是R多,最后加上_的数目就是答案。 class Solution { public: int furthestDistanceFromOrigin(string moves) { int n = 阅读全文
posted @ 2023-08-28 21:25 深渊之巅 阅读(8) 评论(0) 推荐(0) 编辑