- 博客(422)
- 收藏
- 关注

原创 图论相关的算法代码模板
1、Dijkstra求最短路 朴素版稠密图,邻接矩阵存储,找单源最短路,首先起点设置为dist = 0,其他点均为正无穷每次从已经可到达并且还没有确定最短路的里面选一个最短的,从这个点拓展出去看看能不能更新其他点为更短的路径,这个点也就确定了到达的最短路遍历n - 1次之后,就是从所有的点遍历过一次,所有的点也就被确定好了最短的距离代码如下:#include <cstring>#include <iostream>#include <algorithm>
2022-07-03 18:57:46
367

原创 我也有背模板的一天?
1.快排#include <iostream>using namespace std;const int N = 100010;int a[N];int n;void qs(int q[], int l, int r){ if(l >= r) return; int x = q[l + r >> 1], i = l - 1, j = r + 1; while(i < j) { do i ++; whi
2021-08-17 11:00:25
189
原创 每日一题-LeetCode919-完全二叉树插入器-数据结构-手写堆
堆就是放到一维数组里面,节点是p的话,那么左节点就是2p,右节点就是2p+1,这样就可以很快的找到父节点。
2022-07-25 15:35:06
287
原创 每日一题-LeetCode814-二叉树剪枝-递归
包含好办,不包含的时候根据当前节点和左右子树是否为空来进行判断。dfs函数返回当前子树是否包含1,如果包含1返回。
2022-07-21 15:46:32
508
原创 每日一题-LeetCode1260-二维网格迁移-数组-映射
即可达到效果,翻转的时候不用先真的展开成一维数组,建立映射关系进行。展成一维数组,题里就是把最后的K位置移动到开头的位置。
2022-07-20 09:45:36
442
原创 剑指Offer26-树的子结构-递归-数据结构
但是这里判断左子树||右子树是不是跟结构的时候,是要把他当做船新的起点去做判断的,所以不是调用dfs函数,而是调用原来的函数。那么判断是不是子树,就要去用或去链接三个当前节点开始||左子树||右子树。dfs返回这两个树是不是一样的。...
2022-07-16 15:27:07
143
原创 剑指Offer14-I-剪绳子-小学数奥
原题链接分成2 和 3 并且 2 的数量不超过2个如果最优解里有5,那么拆成2 和 3肯定比5好1就更不用说了,乘了跟没乘一样如果是4 那就是2 和 2一样的 没啥区别
2022-07-14 17:41:45
135
原创 剑指Offer12-矩阵中的路径-深搜-dfs
原题链接遍历每个位置为起始位置开始进行深搜,每次搜上下左右四个方向,如果不等于当前字母就是遍历完整个单词了就```true````
2022-07-14 12:01:30
174
原创 剑指Offer11-旋转数组中的最小数-二分
原题链接因为有重复元素存在,平常的二分就不好用了,每次如果二分完是值相等的话,就让至于为什么正确,模拟一遍就知道了,反正从头想也想不到,记住就行了是因为如果不满足条件的话,操作的是而且最后返回的也是...
2022-07-14 09:49:05
188
原创 每日一题-LeetCode735-行星碰撞-模拟
原题链接同方向的指定不会撞只有往右走的和往左走的可能会撞上,所以只考虑这个就可了如果是往右走的,直接放到答案里面去如果是往左走的,先把比他小的全从答案里T出去如果相等,那就直接循环下一个如果前面剩下的都是向左走的了,那么就直接进入答案里面...
2022-07-13 19:26:29
225
原创 剑指Offer07-重建二叉树-数据结构-递归
原题链接因为要靠中序遍历来区分左右子树,所以先开个哈希表记录一下中序遍历每个数对应的下标然后每次先序遍历到的就是根节点,根据这个根节点去中序里面找对应的左右子树的部分,去递归的构建,每次传进去当前子树先序遍历的对应区间和中序遍历的对应区间...
2022-07-13 12:15:46
121
原创 剑指Offer05-替换空格-模拟-字符串-双指针
原题链接先遍历一遍看看一共几个空格,然后给字符串后面扩展相应的位数之后从最后扩展后的最后一位开始遍历,从原来的最后一位开始遍历,每次到空格了,就给补成否则就直接copy过来
2022-07-12 21:40:56
127
原创 剑指Offer04-二维数组中的查找-矩阵-搜索
原题链接右边和下边都是涨的,那肯定是不合适不好找,但是要是一边是减少一边是增加,就好办了所以从右上角开始查找,如果是小的,那么就往左走,如果是大的就往下走找到答案的话就返回,越界了还没返回就是找不到,return false;...
2022-07-12 21:30:57
123
原创 剑指Offer03-数组中重复的数字-数组
原题链接当前位置的下标和数对应嘛?Loop当前下标的数和他那个位置的对应吗?对应就重复了,不对应就交换一下Loop
2022-07-12 21:18:57
239
原创 LeetCode2337-移动片段-脑筋急转弯-双指针
原题链接宽搜模拟一下就爆时间了,还是得搞花里胡哨的首先,去掉下划线之后,两个字符串得是一样的我不会调用库函数,就分两步走,先判断L和R的数量是不是一样的之后在后面去判断有没有连续的相互错位然后两个指针都从头开始遍历两个字符串如果start找到了L,并且那么说明这个L的正确位置在右边,他已经挪不过去了,如果start找到了R,并且那么说明这个R的正确位置在左边,他也挪不过去了,代码里比较高级的地方是,不用两个判断了,因为他俩是正好相反的条件,直接用==判断是不是同时成立...
2022-07-11 21:38:05
184
原创 LeetCode139-单词拆分-字符串-动态规划
原题链接就是看看怎么个拆分法能给拆成让单词都出现在字典里面状态表示:表示是否可以被拆分状态转移方程:为了能保证查询子串是否出现在字典里面,使用字符串hash操作来实现O(1)的复杂度这样就要尽量去保证从前往后的去计算字符串哈希所以在递推每种状态的时候,就倒着推初始化这是说当你前面找到第一个符合标准的划分方法之后就可以划分了,最后是空的字符,不会有影响的...
2022-07-11 16:20:16
144
原创 每日一题-LeetCode676-实现一个魔法字典
原题链接首先,构建一个trie树存放字典里的所有单词,然后每次查询操作都爆搜一下构建好的trie树,搜的过程中开个变量去记录有多少字符不一样搜的时候就是从0号节点开始搜他的26个子节点,如果字母跟字符串当前要搜的字符一样,那就继续走下去,如果不一样,记录一下不一样个数然后继续往下走,如果没有这个子节点就...
2022-07-11 11:31:31
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人