cout<<‘(’<<print[i][0]<<‘,’<<print[i][1]<<‘)’;
if(i==k-1)
cout<<endl;
}
return ;//返回
}
for(int i=0;i<4;i++){//沿四个方向搜索
int ix=x+dir[i][0];
int iy=y+dir[i][1];
if(tag[ix][iy]||ix<1||iy<1||ix>n||iy>n){
continue;//边界条件
}
print[k][0]=ix;//记录当前节点坐标
print[k][1]=iy;
tag[ix][iy]=true;//当前节点走过
dfs(ix,iy,k+1);//递归调用
tag[ix][iy]=false;//回溯要修改当前节点的状态
}
}
int main(){
cin>>n;
tag[1][1]=true;//起点位置
print[0][0]=1;//起点坐标
print[0][1]=1;
dfs(1,1,1);//深度优先搜索
cout<<cnt;
}
#include<bits/stdc++.h>//[BFS]
using namespace std;
int dir[][2]={{1,0},{-1,0},{0,1},{0,-1}};//方向向量
int n,m;//终点坐标
const int N=100;
int map1[N][N];//定义的搜索图
struct node{//点的坐标
int x;
int y;
};
queue que;//queue队列
int foot[N][N];//走过的要标记起来
int bfs(){
//初始化
que.push({0,0});
foot[0][0]=0; //初始步数为0
//队列不为空
while(que.size()){
//首先出队
node temp=que.front();
que.pop();
//遍历四个方向
for(int i=0;i<4;i++){//四个方向搜索
int ix=temp.x+dir[i][0];
int iy=temp.y+dir[i][1];
if(ix<0||iy<0||ix>=n||iy>=m||foot[ix][iy]!=-1||map1[ix][iy]==1){
continue;
}
//入队
que.push({ix,iy});
foot[ix][iy]=foot[temp.x][temp.y]+1;//到当前节点的步数
复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
- 第一部分:Java基础-中级-高级
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
进阶学习笔记pdf
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
]
[外链图片转存中…(img-H7w6W3Hp-1721128937711)]
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外链图片转存中…(img-6yyPIf0j-1721128937711)]
[外链图片转存中…(img-Jqy40AgW-1721128937711)]