Typora绘图
在学习的过程中不可避免地要绘制流程图,树状图,这些图画起来比较简单,但是要达到美观就比较麻烦了。所以在网上找了一些绘图的工具,首先是Typora的自带绘图工具。
Typora的绘图代码
mermaid绘图
首先是成品:
graph LRA[方形] -->B(圆角) B --> C{条件a} C -->|a=1| D[结果1] C -->|a=2| E[结果2] F[横向流程图]
下面是代码:
```mermaidgraph LRA[方形] -->B(圆角) B --> C{条件a} C -->|a=1| D[结果1] C -->|a=2| E[结果2] F[横向流程图]```
接受一下算法:
{}表示的是条件判断,[]是方形的边框,()是圆形的。
–>表示的线,A,B,C是标号。||是条件,括号内的是节点名称。
LR表示横向, TD是竖向
标准流程图flow
成品:
st=>start: 开始框op=>operation: 处理 ...
回溯算法题目
算法描述
回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 “回溯” 返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为 “回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。
回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
算法使用方法
我觉得在使用回溯算法的时候,需要使用树形的结构来帮助算法的运行。我在使用回溯的时候都是理由深度优先搜索算法和剪枝来解决问题的。
整个深度搜索算法的结构如下:
int n; // 最终能达到的树的深度vector<vector<int>> ans; //如果要求不重复,可以声明为set或者在算法中排除void dfs(int cur, vector<int>tags, vector<int> ins)//cur表示当前到达的 ...
并查集
今天在刷题的过程中,遇到了有关并查集的问题,之前有学过,但是一直没有使用过。所以没啥映像。现在好好学习一下。
并查集
首先这里都是自己看人家写的。还处于学习的阶段。
并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。
使用并查集时,首先会存在一组不相交的动态集合$S = {S_1, S_2 … S_k}$,一般都会使用一个整数表示集合中的一个元素。每个集合可能包含一个或多个元素,并选出集合中的某个元素作为代表。每个集合中具体包含了哪些元素是不关心的,具体选择哪个元素作为代表一般也是不关心的。我们关心的是,对于给定的元素,可以很快的找到这个元素所在的集合(的代表),以及合并两个元素所在的集合,而且这些操作的时间复杂度都是常数级的。
并查集的操作有三个:
makeSet(s):建立一个新的并查集,其中包含 s 个单元素集合。
unionSet(x, y):把元素 x 和元素 ...
LeetCode-8
题目
二叉树的堂兄弟节点
200.岛屿数量
201.数字范围按位与
题解
二叉树的堂兄弟节点
利用结构体,一个属性为父节点,一个为节点深度。
岛屿数量
两种方法。
法一:深度遍历,遍历完将岛屿清零;
法二:并查集。
数字范围按位与
主要思想:不太理解。
LeetCode-7
LeetCode_7
题目
976.三角形最大周长
977.有序数组的平方
989.数组形式的整数加法
思路
三角形最大周长
先排序,后面就三个一起往后移动。比如此时$a>=b>=c>d$。如果$a,b,c$能组成三角形,那么其是最大的。如果不能,那么应该$a>b+c$,那么$a>b+d$也显然成立。所以直接比较$b,c,d$是否满足要求即可。
有序数组的平方
最简单的方法,直接计算,然后排序。
稍微好一点的做法,双指针做法
数组形式的整数加法
直接将最后一位与K进行相加,然后进位继续求和。
C艹_创建无重复元素的Vector
c++创建无重复元素的Vector
我们知道,在刷题的时候,总是会遇到让我们创建无重复元素的问题。主要方法,在插入的时候进行处理。这里不选择这个。我们先使用SET容器,这样可以把元素无重复的插入。最后将Set的值赋给Vector。
ans.assign(s.begin(), s.end());
十分简单。学到了。
LeetCode-6
LeetCode-6
题目:
953.验证外星语词典
961.重复n次的元素
965.单值二叉树
970.强整数
思路:
验证外星语词典
这题目就是一个字典排序题。不过字典序是题目指定的,所以需要一个转换。然后遍历即可,难度不高。
重复n次的元素
一共2n个元素,n+1个不同的,其中n个重复。最简单的就是遍历。另一个解法是:长度为4的子序列中一定会有重复元素。只需要比较所有距离为 1,2 或者 3 的邻居元素即可。
单值二叉树
这个就比较简单了,只需要遍历即可。
强整数
最开始遍历范围,然后计算是否成立,后面是先计算成立的,再计算是否符合范围。
5.28最近的一些计划
计划
hexo
工欲善其事,必先利其器。这句话还是很对的,以后要用hexo写博客,之前修改过hexo的主题,但是还有有一些不和谐的地方,在阅读别人博客的时候,确实存在好看的主题和效果,这些都是值得我去学习,借鉴的。所以我要修改一下我的博客,目前主要还是修改功能性的问题,按钮点击没有出现404,每个页面都要设置好,还好页面的显示要合理,不是很丑的那种。之后就是更多的美化这些东西,让他们的“颜值” 不断提升。
读书🛴提升自己
之前买的两本专业书,也可以带着看看了,不然又浪费了金钱。
然后有机会还是要多看看其他方面的书籍,提升一下整个人的内在。
目前的学业和工作任务
毕业设计,还要修改,降重;
简历。
我的团长我的团,最近又在看了多想想一些自己身上有的不好的地方。
最后,每件事都很容易,难得坚持下去,坚持下去会有不一样得收获。
复试出成绩的一天
165d50f05814027fb7fe5e4ae8a088d86787c748b405550d35a33d270865828a38eb9180ff4eb1916d4e8d4d0bb84e3cba686466a6e4482b4ee5eb4a6b7a06f0f9e3543cb614231ed87a84afda3b849d8ec9e647c04d370b6405abf4d636ed2d46dc00890286d36af491ff47d2a610cb9b5535bacffb206a4da35f9a9ed19571
Hey, password is required here.
强烈推荐Typora
165d50f05814027fb7fe5e4ae8a088d86787c748b405550d35a33d270865828a38eb9180ff4eb1916d4e8d4d0bb84e3cba686466a6e4482b4ee5eb4a6b7a06f00c9439990d971f28ccf08a245a4077ef7e77ee3348084822a0f8c2b3c110a168de4bbf1f1c8fd766a52bc357e670cefbacdebbdf0bd906e5aa5da39fde909082a53a6e4665983f0ce104307005887e00d319ea6474f89b93558096e633ddfc9d81fbcbb1f364018e039132b5b92e335a806d2427ba822242953bd0550cf709d8ed045464599284b276300b59030067647f8a5b4579adaa28ecf013aa3ef0adf3dfec439508a0985995adc0a52e2484de3e21a7e21e2f3c9ad ...