当前位置: 首页 > news >正文

最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

在这里插入图片描述
在这里插入图片描述

文章目录

  • 前言
  • A - Dijkstra Algorithm
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • B - 最长路
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • C - 二分图最大匹配
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • D - 搭配飞行员
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • E - The Perfect Stall
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • F - Asteroids
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • G - Til the Cows Come Home
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • H - 拓扑排序
    • 0x00 算法题目
    • 0x01 算法思路
    • 0x02 代码实现
  • 总结


前言

最短路Dijkstra,spfa,图论二分图算法AYIT—ACM训练(模板版)
A — Dijkstra
B — spfa/Dijkstra
C — 二分图
D — 二分图
E — 二分图
F — 二分图
G — Dijkstra
H — Topsort


A - Dijkstra Algorithm

0x00 算法题目

在这里插入图片描述

0x01 算法思路

Dijkstra算法基础模板题

💬 模板演示:

int dijkstra()
{memset(dist,0x3f,sizeof dist);dist[1]=0;for(int i=0;i<n;i++){int t=-1;for(int j=1;j<=n;j++){if(!st[j] && (t==-1 || dist[t] > dist[j]))t=j;}st[t]=true;for(int j=1;j<=n;j++)dist[j]=min(dist[j],dist[t]+g[t][j]);}if(dist[n]==0x3f3f3f3f) return -1;return dist[n];}

0x02 代码实现

朴素版本Dijkstra:

💬 代码演示:

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;
const int N = 510;
int g[N][N];
bool st[N];
int dist[N];
int n,s,f;int dijkstra()
{memset(dist,0x3f,sizeof dist);dist[s]=0;for(int i=0;i<n;i++){int t=-1;for(int j=1;j<=n;j++)if(!st[j] && (t==-1 || dist[t] > dist[j]))t=j;st[t]=true;for(int j=1;j<=n;j++)dist[j]=min(dist[j],dist[t]+g[t][j]);}if(dist[f]==0x3f3f3f3f) return -1;return dist[f];
}int main()
{cin>>n>>s>>f;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){int x;cin>>x;if(x==-1) g[i][j]=0x3f3f3f3f;else g[i][j]=x;}}int t =dijkstra();cout<<t<<endl;return 0;
}

🚩 运行结果:
在这里插入图片描述
spfa算法:
💬 代码演示:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>using namespace std;
const int N=110,M=110*110;
int n,s,f;
bool st[N];
int h[N],w[M],ne[M],e[M],idx;
int dist[N];void add(int a,int b,int c)
{e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
}int spfa()
{memset(dist,0x3f,sizeof dist);dist[s]=0;queue<int> q;q.push(s);while(q.size()){int t = q.front();q.pop();st[t]=false;for(int i=h[t];i!=-1;i=ne[i]){int j=e[i];if(dist[j] > dist[t] + w[i]){dist[j]=dist[t]+w[i];if(!st[j]){q.push(j);st[j]=true;}}}}if(dist[f]==0x3f3f3f3f) return -1;else return dist[f];
}int main()
{cin>>n>>s>>f;memset(h,-1,sizeof h);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){int x;cin>>x;//if(x==-1) continue;if(x>0) add(i,j,x);}}cout<<spfa()<<endl;return 0;
}

🚩 运行结果:
在这里插入图片描述

B - 最长路

0x00 算法题目

在这里插入图片描述

0x01 算法思路

spfa算法基础模板题

💬 模板演示:

int spfa()
{memset(dist, 0x3f, sizeof dist);dist[1] = 0;queue<int> q;q.push(1);while(q.size()){auto t = q.front();q.pop();st[t]=false;for(int i=h[t];i!=-1;i=ne[i]){int j = e[i];if(dist[j] > dist[t]+w[i]){dist[j]=dist[t]+w[i];if(!st[j]){q.push(j);st[j]=true;}}}}return dist[n];
}

0x02 代码实现

spfa算法:
💬 代码演示:

#include<bits/stdc++.h>
#define endl '\n'using namespace std;
const int N = 1510,INF = 0x3f3f3f3f;
int n,m;
int dist[N];
int g[N][N];
queue<int> q;void spfa()
{memset(dist,-1,sizeof dist);dist[1]=0;q.push(1);while(!q.empty()){int t = q.front();q.pop();for(int j=1;j<=n;j++){if(g[t][j] && dist[j] < dist[t] + g[t][j]){dist[j] = dist[t] + g[t][j];q.push(j);}}}}int main()
{cin>>n>>m;for(int i=1;i<=m;i++){int a,b,c;cin>>a>>b>>c;g[a][b]=max(g[a][b],c);}spfa();cout<<dist[n]<<endl;return 0;
}

🚩 运行结果:
在这里插入图片描述

C - 二分图最大匹配

0x00 算法题目

在这里插入图片描述

0x01 算法思路

二分图模板题

💬 模板演示:

//邻接表
bool find(int x)
{for (int i = h[x]; i != -1; i = ne[i]){int j = e[i];if (!st[j]){st[j] = true;if (match[j] == 0 || find(match[j])){match[j] = x;return true;}}}return false;
}
//邻接矩阵
bool find(int x)
{for(int i=0;i<g[x].size();++i){int j = g[x][i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}

0x02 代码实现

💬 代码演示:

#include<iostream>
#include<cstring>using namespace std;const int N = 510,M=5e4+10;
int n,m,q;
int h[N],e[M],ne[M],idx;
int match[N];
bool st[N];void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}bool find(int x)
{for(int i=h[x];i!=-1;i=ne[i]){int j = e[i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}int main()
{cin>>n>>m>>q;memset(h,-1,sizeof h);while(q--){int u,v;cin>>u>>v;add(u,v);}int res=0;for(int i=1;i<=n;i++){memset(st,false,sizeof st);if(find(i)) res++;}cout<<res<<endl;return 0;
}

🚩 运行结果:
在这里插入图片描述

D - 搭配飞行员

0x00 算法题目

在这里插入图片描述

0x01 算法思路

二分图模板题

💬 模板演示:

//邻接表
bool find(int x)
{for (int i = h[x]; i != -1; i = ne[i]){int j = e[i];if (!st[j]){st[j] = true;if (match[j] == 0 || find(match[j])){match[j] = x;return true;}}}return false;
}
//邻接矩阵
bool find(int x)
{for(int i=0;i<g[x].size();++i){int j = g[x][i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}

0x02 代码实现

💬 代码演示:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>using namespace std;
const int N = 110;int n,m;
int map[N][N];
int match[N];
bool st[N];
vector<int> g[N];
bool find(int x)
{for(int i=0;i<g[x].size();++i){int j = g[x][i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}int main()
{scanf("%d %d",&n,&m);int a,b;while(cin>>a>>b){g[a].push_back(b);}int res = 0;for(int i=1;i<=m;i++){memset(st,false,sizeof st);if(find(i)) {res++;}}cout<<res;return 0;
}

🚩 运行结果:
在这里插入图片描述

E - The Perfect Stall

0x00 算法题目

在这里插入图片描述

0x01 算法思路

二分图模板题

💬 模板演示:

//邻接表
bool find(int x)
{for (int i = h[x]; i != -1; i = ne[i]){int j = e[i];if (!st[j]){st[j] = true;if (match[j] == 0 || find(match[j])){match[j] = x;return true;}}}return false;
}
//邻接矩阵
bool find(int x)
{for(int i=0;i<g[x].size();++i){int j = g[x][i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}

0x02 代码实现

💬 代码演示:

#include<algorithm>
#include<bits/stdc++.h>
using namespace std;
const int N = 510,M=5e4+10;
int n,m;
int match[N];
bool st[N];
vector<int> g[N];bool find(int x)
{for(int i=0;i<g[x].size();++i){int j = g[x][i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}int main()
{while(~scanf("%d%d",&n,&m)){memset(st,false,sizeof st);memset(match,0,sizeof match);for(int i=1;i<=n;i++){g[i].clear();int s;cin>>s;while(s--){int q;cin>>q;g[i].push_back(q);}}int res=0;for(int i=1;i<=n;i++){memset(st,false,sizeof st);if(find(i)) res++;}cout<<res<<endl;}return 0;
}

🚩 运行结果:
在这里插入图片描述

F - Asteroids

0x00 算法题目

在这里插入图片描述

0x01 算法思路

二分图模板题

💬 模板演示:

//邻接表
bool find(int x)
{for (int i = h[x]; i != -1; i = ne[i]){int j = e[i];if (!st[j]){st[j] = true;if (match[j] == 0 || find(match[j])){match[j] = x;return true;}}}return false;
}
//邻接矩阵
bool find(int x)
{for(int i=0;i<g[x].size();++i){int j = g[x][i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}

0x02 代码实现

💬 代码演示:

#include<iostream>
#include<cstring>
using namespace std;
const int N = 510,M=5e4+10;
int n,m,q;
int h[N],e[M],ne[M],idx;
int match[N];
bool st[N];void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}bool find(int x)
{for(int i=h[x];i!=-1;i=ne[i]){int j = e[i];if(!st[j]){st[j]=true;if(match[j]==0 || find(match[j])){match[j]=x;return true;}}}return false;
}int main()
{cin>>n>>m;memset(h,-1,sizeof h);while(m--){int u,v;cin>>u>>v;add(u,v);}int res=0;for(int i=1;i<=n;i++){memset(st,false,sizeof st);if(find(i)) res++;}cout<<res<<endl;return 0;
}

🚩 运行结果:
在这里插入图片描述

G - Til the Cows Come Home

0x00 算法题目

在这里插入图片描述

0x01 算法思路

Dijkstra算法基础模板题

💬 模板演示:

int dijkstra()
{memset(dist,0x3f,sizeof dist);dist[1]=0;for(int i=0;i<n;i++){int t=-1;for(int j=1;j<=n;j++){if(!st[j] && (t==-1 || dist[t] > dist[j]))t=j;}st[t]=true;for(int j=1;j<=n;j++)dist[j]=min(dist[j],dist[t]+g[t][j]);}if(dist[n]==0x3f3f3f3f) return -1;return dist[n];}

0x02 代码实现

💬 代码演示:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<stdbool.h>using namespace std;const int N=1010,inf = 0x3f3f3f3f;int n,m;
bool st[N];
int dist[N];
int g[N][N];int dijkstra()
{memset(dist,inf,sizeof(dist));dist[1]= 0;for(int i=1;i <= n;i++){int t=-1;for(int j=1;j<=n;j++)if(!st[j] && (t==-1 || dist[t] > dist[j]))t=j;st[t]=true;for(int j=1;j<=n;j++)dist[j]=min(dist[j],dist[t]+g[t][j]);}return dist[n];
}int main()
{cin>>m>>n;memset(g,inf,sizeof g);for(int i=0;i<m;++i){int a,b,c;cin>>a>>b>>c; g[a][b]=g[b][a]=min(g[a][b],c);}cout<< dijkstra() <<endl;return 0;
}

🚩 运行结果:
在这里插入图片描述

H - 拓扑排序

0x00 算法题目

在这里插入图片描述

0x01 算法思路

拓扑排序算法基础模板题

💬 模板演示:

bool topsort()
{int hh=0,tt=-1;for (int i = 1; i <= n; i ++ )if (!d[i])q[ ++ tt] = i;while(hh<=tt){int t = q[hh ++ ];for (int i = h[t]; i != -1; i = ne[i]){int j = e[i];if (-- d[j] == 0)q[ ++ tt] = j;}}return tt==n-1;
}

0x02 代码实现

💬 代码演示:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>using namespace std;const int N=100010;int n,m;
vector<int> v[N];
int size,d[N];
int ans[N];void topsort()
{priority_queue<int,vector<int>,greater<int> > q;for(int i=1;i<=n;i++)if(!d[i]) q.push(i);while(!q.empty()){int t = q.top();q.pop();ans[size++] = t;for(auto it : v[t]){d[it]--;if(!d[it]) q.push(it);}}
}int main()
{cin>>n>>m;for(int i=0;i<m;i++){int a,b;cin>>a>>b;v[a].push_back(b);d[b]++;}topsort();for(int i=0 ; i<size ;i++)cout<< 'v' << ans[i] <<' ';return 0;
}

🚩 运行结果:
在这里插入图片描述


总结

这次训练很明显涉及到了最短路Dijkstra,spfa,图论二分图算法,以及topsort算法,这次考的比较基础,但是让我意识到了,算法必须熟练记忆模板是很重要的。

相关文章:

最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

文章目录 前言A - Dijkstra Algorithm0x00 算法题目0x01 算法思路0x02 代码实现 B - 最长路0x00 算法题目0x01 算法思路0x02 代码实现 C - 二分图最大匹配0x00 算法题目0x01 算法思路0x02 代码实现 D - 搭配飞行员0x00 算法题目0x01 算法思路0x02 代码实现 E - The Perfect Sta…...

AK 微众银行 9.3 笔试 Java后端方向

T1(模拟,二分) (没看清买的糖果只有前缀&#xff0c;一开始用二分写了&#xff0c;后来意识到也没改了&#xff0c;简单写的话&#xff0c;直接模拟就好了) #include <bits/stdc.h>#define endl \nusing namespace std;const int N 50010;int n; int a[N];bool check(…...

了解java中的通配符“?“

目录 通配符的作用 先看一段代码 用通配符"?"后,代码变化 结论 通配符上界 通配符下界 对通配符上下界的注释理解及其练习代码 简记: ? 用于在泛型的使用&#xff0c;即为通配符. 在Java中&#xff0c;通配符&#xff08;wildcard&#xff09;主要用于泛型…...

浙大陈越何钦铭数据结构07-图6 旅游规划【最小堆实现】

题目&#xff1a; 题目和浙大陈越何钦铭数据结构07-图6 旅游规划是一样的&#xff0c;不同的是用最小堆实现函数【FindMinDist】。 时间复杂度对比&#xff1a; 浙大陈越何钦铭数据结构07-图6 旅游规划&#xff1a; 创建图&#xff08;CreateGraph&#xff09;&#xff1a;时…...

OpenShift 4 - 用 Prometheus 和 Grafana 监视用户应用定制的观测指标(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.13 的环境中验证 文章目录 OpenShift 的监控功能构成部署被监控应用用 OpenShift 内置功能监控应用用 Grafana 监控应用安装 Grafana 运行环境配置 Grafana 数据源定制监控 Dashboard 演示视…...

【LeetCode】剑指 Offer <二刷>(3)

目录 题目&#xff1a;剑指 Offer 06. 从尾到头打印链表 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 07. 重建二叉树 - 力扣&#xf…...

Ceph IO流程及数据分布

1. Ceph IO流程及数据分布 1.1 正常IO流程图 步骤&#xff1a; client 创建cluster handler。client 读取配置文件。client 连接上monitor&#xff0c;获取集群map信息。client 读写io 根据crshmap 算法请求对应的主osd数据节点。主osd数据节点同时写入另外两个副本节点数据。…...

Netty-NIO

文章目录 一、NIO-Selector1.处理accept2.cancel3.处理read4.处理客户端断开5. 处理消息的边界6. 写入内容过多的问题7. 处理可写事件 一、NIO-Selector 1.处理accept //1.创建selector,管理多个channel Selector selector Selector.open(); ByteBuffer buffer ByteBuffer.…...

红外物理学习笔记 ——第三章

第三章 基尔霍夫定律&#xff1a;就是说物体热平衡条件下&#xff0c;发射的辐射功率要等于吸收的辐射功率 M α E M\alpha E MαE α \alpha α 是吸收率&#xff0c; M M M 是幅出度&#xff08;发射出去的&#xff09;&#xff0c; E E E是辐照度&#xff08;外面照过来的…...

使用 htmx 构建交互式 Web 应用

学习目标&#xff1a;了解htmx的基本概念、特点和用法&#xff0c;并能够运用htmx来创建交互式的Web应用程序。 学习内容&#xff1a; 1. 什么是htmx&#xff1f; - htmx是一种用于构建交互式Web应用程序的JavaScript库。 - 它通过将HTML扩展为一种声明性的交互式语言&a…...

S32K324芯片学习笔记

文章目录 Core and architectureDMASystem and power managementMemory and memory interfacesClocksSecurity and integrity安全与完整性Safety ISO26262Analog、Timers功能框图内存mapflash Signal MultiplexingPort和MSCR寄存器的mapping Core and architecture 两个Arm Co…...

htmx-使HTML更强大

‍本文作者是360奇舞团开发工程师 htmx 让我们先来看一段俳句: javascript fatigue: longing for a hypertext already in hand 这个俳句很有意思&#xff0c;是开源项目htmx文档中写的&#xff0c;意思是说&#xff0c;我们已经有了超文本&#xff0c;为什么还要去使用javascr…...

Java学习之序列化

1、引言 《手册》第 9 页 “OOP 规约” 部分有一段关于序列化的约定 1&#xff1a; 【强制】当序列化类新增属性时&#xff0c;请不要修改 serialVersionUID 字段&#xff0c;以避免反序列失败&#xff1b;如果完全不兼容升级&#xff0c;避免反序列化混乱&#xff0c;那么请…...

C++实现蜂群涌现效果(flocking)

Flocking算法0704_元宇宙中的程序员的博客-CSDN博客 每个个体的位置&#xff0c;通过计算与周围个体的速度、角度、位置&#xff0c;去更新位置。...

IDEA复制一个工程为多个并启动,测试负载均衡

1 找到服务按钮 2 选择复制配置 3 更改新的名称与虚拟机参数 复制下面的代码在VM参数中 -Dserver.port8082 4 最后启动即可...

001_C++语法基础

C语法基础 所有C语法要用英文区分大小写每个语句写完以分号结束 C标准输入输出头文件iostream 若想通过C实现数据的输入和输出&#xff0c;需要导入标准输入输出头文件 #include <iostream>标准输入输出头文件<iostream>中包含了cin输入语句和cout输出语句 标…...

对Excel表中归类的文件夹进行自动分类

首先把excel表另存为.txt文件&#xff08;注意&#xff1a;刚开始可能是ANSI格式&#xff0c;需要转成UTF-8格式&#xff09;&#xff1b;再新建一个.txt文件&#xff0c;重命名成.bat文件(注意&#xff1a;直接创建的如果是是UTF-8格式&#xff0c;最好转成ANSI格式&#xff0…...

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析 模型预测控制在工业中应用广泛。这种方法的优点之一是在求解最优控制问题时能够明确考虑对输入和输出状态施加的约束。控制对象模型用于有限时间范围内最优控制的实时计算。所使用的数学设备允许从具有单输入和单…...

C++中位运算符使用

& 与 只有都为1结果为1 0 & 0 00 & 1 01 & 0 01 & 1 1 | 或 只要一个为1结果为1 0|00 0|11 1|01 1|11 ^ 异或 两个相同的数字为0&#xff0c;其余为1 0^00 1^01 0^11 1^10 ~ 取反 将进制位数进行取反 ~1-2 //0000 0001-->代…...

微机原理 || 第2次测试:汇编指令(加减乘除运算,XOR,PUSH,POP,寻址方式,物理地址公式,状态标志位)(测试题+手写解析)

&#xff08;一&#xff09;测试题目&#xff1a; 1.数[X]补1111,1110B&#xff0c;则其真值为 2.在I/O指令中,可用于表示端口地址的寄存器 3. MOV AX,[BXSl]的指令中&#xff0c;源操作数的物理地址应该如何计算 4.执行以下两条指令后&#xff0c;标志寄存器FLAGS的六个状态…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析

目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork&#xff08;创建个人副本&#xff09;步骤 2: Clone&#xff08;克隆…...

LeetCode 0386.字典序排数:细心总结条件

【LetMeFly】386.字典序排数&#xff1a;细心总结条件 力扣题目链接&#xff1a;https://leetcode.cn/problems/lexicographical-numbers/ 给你一个整数 n &#xff0c;按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。…...