2024年Java最全LeetCode 面试题 04,java面试没问技术

最后

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

image

image

其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣,

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

}

return dfs(start, target);

}

bool dfs(int start, int target) {

if(start == target) return true;

//如果访问过了就相当于找不到,返回false

if(visited[start]) return false;

//标记start行,表示访问过了

visited[start] = true;

//遍历start行,dfs深搜找target

for(auto& ms : map[start]) {

if(dfs(ms, target)) return true;

}

return false;

}

};

class Solution {

public:

bool findWhetherExistsPath(int n, vector<vector>& graph, int start, int target) {

//方法二:bfs

//用map存储领接表,比用动态数组下标耗费空间小

unordered_map<int, vector > map;

vector visited(n,false);

//存储领接表

for(auto& g : graph) {

map[g[0]].emplace_back(g[1]);

}

queue q;

q.push(start);

while(!q.empty()) {

int top = q.front(); q.pop();

if(top == target) return true;

visited[top] = true;

for(auto& ms : map[top]) {

if(!visited[ms])

q.push(ms);

}

}

return false;

}

};

Java代码

=====================================================================

//dfs

class Solution {

Map<Integer, List> map = new HashMap<>();

boolean[] visited;

public boolean findWhetherExistsPath(int n, int[][] graph, int start, int target) {

visited = new boolean[n];

for(int[] g : graph) {

if(!map.containsKey(g[0])) {

//创建有key的空列表

map.put(g[0], new ArrayList<>());

}

map.get(g[0]).add(g[1]);

}

return dfs(start, target);

}

boolean dfs(int start, int target) {

if(start == target) return true;

if(visited[start]) return false;

visited[start] = true;

//Java需要注意的点,防止map.get(key)空指针异常

if(map.get(start) == null) return false;

for(Integer ms : map.get(start)) {

if(dfs(ms, target)) return true;

}

return false;

}

}

//bfs

class Solution {

public boolean findWhetherExistsPath(int n, int[][] graph, int start, int target) {

Map<Integer, List> map = new HashMap<>();

boolean[] visited = new boolean[n];

LinkedList q = new LinkedList<>();

for(int[] g : graph) {

if(!map.containsKey(g[0])) {

map.put(g[0], new ArrayList<>());

}

map.get(g[0]).add(g[1]);

}

q.add(start);

while(!q.isEmpty()) {

int top = q.pop();

visited[top] = true;

if(top == target) return true;

最后

由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。

image

本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

5740544)]

[外链图片转存中…(img-w1eIdSLk-1714865740545)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值