算法
云舟水
一只起步晚,好懒的大龄程序狗
展开
-
双指针
一头一尾型双指针 都是从头开始的指针 快慢指针 滑动窗口指针原创 2020-03-23 21:09:39 · 95 阅读 · 0 评论 -
算法板子(持续更新中)
区间问题 线段树 #include<bits/stdc++.h> using namespace std; const int N=1000; int arr[N],tree[N],lazy[N]; void build(int start,int end,int cp){ //如果左右重合 说明到了叶子节点 //叶子节点的值即为原数组的值 if(start=...原创 2020-03-15 12:11:46 · 485 阅读 · 0 评论 -
记忆化搜索
记忆化搜索 也是搜索的一种,实则以空间换时间。当然多花一点空间 可以换来时间上的巨大提升。往往就从超时直到接过了。再说都2020年了 内存都是以G为单位的,可以说以一点空间换时间的缩短,可以说是很值得的。 好了,不扯废话了,上两道题意思意思 题面 设一个nnn个节点的二叉树tree的中序遍历为(1,2,3,…,n)(1,2,3,…,n)(1,2,3,…,n),其中数字1,2,3,…,n1,2,3,...原创 2020-03-09 17:44:41 · 122 阅读 · 0 评论 -
广度优先遍历BFS 入门
广度优先遍历 Leetcode 打卡题 很有意思的一道题 这道题让我学会了广度优先遍历 对于格子点来说 它的广度就是它周围的四个点,用一个for循环就能搞定了。 思路 先扫一边数组 将坏橘子加入到队列中,再开一个二维数组用来存放有没有被感染的标记。 这里放两张图来便于理解,左边是原数组,右边是标记数组 可以很清楚的看到感染的波数 int orangesRotting(vector<vec...原创 2020-03-04 20:54:45 · 152 阅读 · 0 评论 -
动态规划
动态规划 又名Dynamic programming 高大上的一个词。 2020.2.25 这里记录一下 今天学会 也没有学会 其实就是大概摸懂了一点点而已。 这里加深一下印象 对于0-1背包问题 dp[i][v]dp[i][v]dp[i][v] 表示前 i 件物品 恰好装入容量为v的背包中所能获得的最大价值 怎么求解dp[i][v]dp[i][v]dp[i][v] 呢 考虑对i-1件物品的选择 ...原创 2020-02-25 20:08:48 · 124 阅读 · 0 评论 -
递归问题
最近遇到了好多问题,都是递归出了问题,也不知道为什么 脑子就是转不过来。是时候该了结一下了。 所谓递归 所谓递归就是函数自己调用自己,说得挺轻巧,但对于我就是很难理解。 都不知道递归是啥回事。唯一能够写出来的递归代码就是斐波那契数列求和了。实在是脑子笨到家了。今天好好捋捋。 void build(int node,int l, int r) { if (l == r) tree[node] = ...原创 2020-02-22 19:58:29 · 148 阅读 · 0 评论 -
二分法
二分法 其实二分法看着很简单,但是几个边界条件弄不好就很容易犯错。 画个图看看吧原创 2020-02-21 17:00:43 · 131 阅读 · 0 评论 -
字符串
原创 2020-02-11 18:32:28 · 91 阅读 · 0 评论 -
排序算法总结
排序算法 常见的排序算法: 插入排序 直接插入排序,折半插入排序,希尔排序 交换排序 冒泡排序,堆排序 选择排序 简单选择排序,快速排序 此外: 归并排序,基数排序 day11/29 马上就要考试了,捋了捋算法题要用到的代码 408常考算法题主要集中在线性表上,其中对于顺序表主要考察对数组的操作,对于链式表主要考察对链表的操作。 对于数组来说,很多题目都会用到排序算法,这里记一下排序算法中性能最优秀的快速排序算法 ...原创 2020-02-11 18:30:48 · 110 阅读 · 0 评论 -
数学在算法中的应用
题解目录数学组合数学数论卡特兰数洛谷 P1044 栈基础算法排序算法冒泡排序选择排序希尔排序插入排序归并排序计数排序快速排序序列算法前缀和差分 数学 组合数学 数论 卡特兰数 洛谷 P1044 栈 #include <iostream> using namespace std; int n; long long f[25]; int main() { f[0] = 1; cin...原创 2020-02-11 14:17:39 · 871 阅读 · 0 评论 -
约瑟夫环
#include<iostream> #include<queue> using namespace std; int main(){ int n,m,d,e=1; queue<int> a; cin>>n>>m; for(int i=1;i<=n;i++) a.push(i); while...原创 2020-01-18 14:41:33 · 183 阅读 · 0 评论 -
序列算法
最近要学一些高级算法,也谈不上高级。就是以前没见过,没听过的算法。才疏学浅是硬伤啊。 怎么说前缀和 数组 0 1 2 3 4 5 6 a 100原创 2020-01-16 10:28:58 · 695 阅读 · 0 评论