自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Bellman-Ford算法笔记

概述Bellman-Ford解决连通图中各点至目标点的最短路径问题。其主要思想为通过单跳抵达目标点的距离;经过两跳抵达目标点的距离;经过三跳抵达目标点的距离。。。以此类推并取其中最小值。若有n个节点,则最多有n-1跳。实现上,则是对每条边连接的目标点进行如下处理:d[to] = min(d[from] + edge.weight, d[to]);该处理最多进行n-1轮即可得到最终结果,若在此之前所有点的距离均无变化亦可提前结束循环,若在n-1轮之后距离仍在变化,则说明连通图中出现了负环。.

2021-10-30 22:45:37 82

原创 二叉树的遍历

遍历方式中序遍历对二叉树按左子节点,自身,右子节点的顺序进行遍历。void zx(Node *thi){ zx(thi->left); thi->Data; zx(thi->right);}前序遍历对二叉树按自身,左子节点,右子节点的顺序进行遍历void qx(Node *thi){ thi->Data; qx(thi->left); qx(thi->right);}后序遍历对二叉树按左子节点,右子节点,自身的顺序进

2021-10-24 16:01:52 2444

原创 迭代加深搜索算法笔记

概述顾名思义,迭代加深搜索是对搜索深度进行限制,并逐次放宽限制最终完成搜索工作。其结合了深度优先搜索与广度优先搜索的优点。可针对部分深度与广度均极大甚至无限的问题进行处理。例如:将 x/y 分解为若干各不相同的 1/n ,并取其 1/n 个数最少的解。本题可见如果使用搜索,无论深度与广度都为无限,直接DFS或BFS均不可行,故可以在DFS的基础上限制其搜索深度,即 1/n 的个数并逐次放宽限制,最终得到结果。...

2021-10-16 20:15:07 348

原创 计算机网络学习笔记

发展当前互联网由ARPANET发展而来,1983年ARPANET支持TCP/IP协议,于1990年ARPANET关闭。建成了三级结构的互联网:主干网,地区网,校园网(企业网)。最终逐渐形成了多层次ISP结构的互联网,即普通用户由互联网服务提供者提供网络服务。互联网标准从提出到成为标准有三个阶段:互联网草案 有效期6个月,不是RFC文档建议标准 正式成为RFC文档互联网标准 分配一个标准编号,并可以关联多个RFC文档...

2021-10-09 23:59:41 69

原创 BFS算法笔记

概述对于一个连通图进行遍历,从起点开始遍历节点周围的所有节点,再遍历周围节点的所有周围节点。从图形上直观看来由起点开始向外一圈一圈的扩散。实现方式利用队列进行实现;初始状态:将起点放入待访问队列;取出待访问队列中队首节点,访问该节点数据,同时将当前节点的所有关联节点(未访问过)依次放入待访问队列,单次访问结束。如此循环直至全部节点访问完毕,即待访问队列为空时。...

2021-10-02 21:32:37 50

原创 DFS算法笔记

概述对于一个连通图,从一个节点出发,沿着一个分支一直深入,直至无法继续深入为止( 回退至上一个分支节点),且每个节点仅访问一次。实现方式递归实现void dfs(myNode* sam){ sam->visited = 1; for(int i = 0; i < n; i++) if(sam->next[i]->visited == 0)dfs(sam->next[i]);} 使用栈实现将访问的节点入栈,再通过栈顶节点的next指针找到新.

2021-09-24 22:27:28 75

原创 CCF 202104-4

题目链接:计算机软件能力认证考试系统本题要点:每个区间的种植方案数为区间端点之差的因子整体解决方式为动态规划,总区间从左至右逐渐延展(i 循环),新增区间后,从右至左遍历以右侧节点为结尾的所有可能的区间(j 循环),j循环区间中的方案数与除其区间(即其左侧所有区间)的方案数的乘积即为该 j 循环区间所获得的方案数。所有 j 循环区间方案数之和即为 i 循环方案数。最后一个 i 循环方案数即为所求。在从右至左的遍历过程中,若间隔已经使用过(其一会重复,其二会撞上障碍物),或者间隔上为障碍则该方

2021-09-18 20:21:32 115

原创 并查集算法笔记

概述并查集主要用于数据需要大量进行查询与分组操作的情况中。在并查集中每一个节点都包含自身数据以及一个指向父节点的指针。struct node{ int data; node* parent = NULL;};每当需要查询两个元素是否存在同一组中,则通过其中指针向父节点遍历,确认其是否具有相同根节点,若有则为同属一组。bool search(node a, node b){ node *aParent = &a; node *bParent = &b;

2021-09-11 17:37:30 84

原创 Dijkstra算法求解最短路径

基本思路将起点作为当前点,先遍历当前点关联的边,将边关联的另一点的权重等同于边的权重。再将点位跳转至权重最短的边关联的点,再次遍历所有关联的边,除了已经访问过 (作为当前点过) 的点关联的边,将其权重设为当前点权重加边的权重,若其已有权重则取两者之间最小值。如此往复直至无可跳转的点。void Dijkstra(int** input, int ans[], int n){ //假定起点为[0] ans[0] = 0; int myThis = 0; int visited[n] = {0

2021-09-04 18:21:07 114

原创 React中进行节流与防抖

防抖var timer = null;function debounce(handle, wait){ if(timer !== null) clearTimeout(timer) timer = setTimeout(()=>{handle}, wait)}将函数设置为等待一定时间后执行,若该时间内再次调用该函数则重置等待时间,示例中使用setTimeout使handle函数在wait时间后执行,若再次调用则清除之前的setTimeout,重新计时。节流va

2021-08-28 13:28:28 580

原创 Django+Python后端开发笔记

使用步骤:安装Django:pip install Django==3.2.6构建初始项目:django-admin startproject name构建初始apppython manage.py startapp name在开启数据库服务后,项目文件下的setting文件中配置以下部分:DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', ..

2021-08-21 20:48:35 111

原创 React学习笔记03

render,props模式与高阶组件作用将可复用的组件代码抽离出来,方便重复使用,减少冗余代码出现。render,props使用方式新建一个组件,并于组件中实现所需的可复用功能在此组件中render处调用外部传入的函数并将state作为参数传入调用组件时向组件传入一个含参的函数用于处理UI等个性化功能,在此函数中其参数即为可复用组件传入的stateclass fy extends React.Component{ state = {...} // 可复用代码

2021-08-14 14:31:06 62

原创 Redux学习笔记01

简介Redux为用于管理数据状态和UI状态的JS工具。即以统一仓库的形式免去React等框架中state的逐级传递的麻烦。使用步骤安装 项目目录下输入npm install --save redux新建store/index.js文件import {createStore} from 'redux'import reducer from './reducer'const store = createStore(reducer)export default store新建sto

2021-08-07 01:06:42 70

原创 React学习笔记02

组件创建组件函数创建组件,无状态组件,主要用于静态展示注意:函数名首字母大写;必须有返回值;如需不渲染内容则返回nullfunction Hello(){ return { <div>Hello</div> }}使用类创建组件,有状态组件,依据数据变化更新页面内容注意:类名首字母大写;继承React.Component;必须有render()方法且必须有返回值;class Hello extends Rea

2021-07-31 13:54:39 69

原创 React学习笔记01

React简介React是源于Facebook内部项目的一个用于构建用户界面的JavaScript库。React的特点:声明式:以HTML的形式描述UI结构基于组件:以组件为基础构建页面,组件表示页面中的一部分内容通用性:React具有可以开发Web端,移动端,VR等应用的库React的使用安装:npm i react react-dom 安装react,react-dom两个包安装脚手架:npx create-react-app 项目名字 ...

2021-07-24 19:40:51 92 1

原创 React组件生命周期学习笔记

生命周期Mount 已经插入真实DOMUpdating 正在被重新渲染Unmounting 已移出真实DOM生命周期方法初始化时调用componentWillMount 在初始化render时调用componentDidMount 在初始化render后调用更新时调用componentWillReceiveProps 在组件接收到一个新的props时调用shouldComponentUpdate 返回一布尔值用于决定是否执行rendercomponentWillU

2021-07-17 04:44:39 260

原创 JAVA基于TCP/IP的网络编程

服务器端ServerSocket server=null; try{ //新建一个服务器的socket server=new ServerSocket(4700); }catch(Exception e) { System.out.println("can not listen to:"+e); //处理无法监听端口的问题(例如:端口占用等问题) } Socket socket=null;

2021-07-09 12:27:55 184

原创 归并排序算法笔记

概述归并排序属于稳定排序算法,当排序要求元素的排序关键词相同,元素前后顺序不变时,可以考虑使用归并排序。其主要原理是:不断将两个有序序列归并为一个,由小至大逐渐使整个序列都变为有序。实现以自底向上的实现方式为例void gbf(int n){ for(int gap = 1; gap < n; gap *= 2) { gb(n, gap); }}将归并的子序列长度依次乘二void gb(int n, int gap){ int tL = (2 * gap)

2021-07-02 12:43:23 78

原创 快速排序算法笔记

概述快速排序算法的复杂度为O(nlogn),属于不稳定排序算法,即关键字相同的两个元素的先后顺序在排序之后可能会被打乱。总体上来讲,快速排序使用了分治的方法,将序列不断划分为两部分。具体过程在待排序列中选定一个中间值,将大于中间值的元素放于中间值右边,小于中间值的元素放于中间值左边(升序排序),再用同样的方法处理以中间为界的左右两子序列,中间值位置不变,不参与后续排序。代码实现void qs(int L, int R){ int mid = sam[L]; int i = L;

2021-06-25 12:09:34 80

原创 2021-06-18 KMP算法笔记

KMP算法用于处理模式匹配问题而提出,主要特点为在模式匹配时将已经完成匹配的部分尽可能多的利用起来,具体来说就是在失配时,模式串的指针将回至与失配位置前驱相同的最长模式串前缀处,进而继续比较。...

2021-06-18 16:12:21 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除