教程演示🔗

100 多个用于破解 FAANG 的 DSA 面试问题,并附有动画示例,可帮助您更深入地理解和更快地学习

你将学到什么

  • 学习、实现和使用不同的数据结构
  • 学习、实施和使用不同的算法
  • 通过掌握计算机科学基础知识成为更好的开发人员
  • 学习通过困难的编程面试所需的一切
  • 破解 100 多个问题并附有解释的编码面试
  • 数据结构和算法的时间和空间复杂度
  • 递归
  • 大O
  • 动态规划
  • 分而治之算法
  • 图算法
  • 贪心算法

要求

  • 基本的 Java 编程技能

描述

欢迎来到 Java 数据结构和算法大师班,这是 互联网上最现代、最完整的 Java 数据结构和算法课程。

这是最全面的在线课程,时长超过45 小时,可帮助您在编码面试中取得好成绩,并了解 Java 中的数据结构和算法。您将看到苹果、亚马逊、谷歌、微软等顶级科技公司的100 多个面试问题,以及如何面对面试,并配有全面的视觉讲解视频材料,让您离梦想的科技工作更近一步!

学习 Java 是改善职业前景的最快方法之一,因为它是最需要的技术技能之一!本课程将帮助您更好地理解 数据结构的每个细节以及如何用高级编程语言实现算法。

我们将通过引人入胜的视频教程逐步引导您,并教您成为一名成功的专业程序员所需的一切。

完成本课程后,您将能够:

学习基本的算法技术,如贪心算法、二分搜索、排序和动态编程,以解决编程挑战。

了解各种数据结构的优点和缺点,以便您可以为您的数据和应用程序选择最佳的数据结构

了解许多常用于对数据进行排序的算法,以便您的应用程序在对大型数据集进行排序时能够高效运行

了解如何应用图形和字符串算法来解决现实世界的挑战:在巨大的地图上寻找最短路径以及从数百万个片段中组装基因组。

为什么这门课程如此特别并且与任何其他在线资源不同?

本课程将带您从一开始就了解数据结构和算法的非常复杂和高级的主题!

在整个课程中,您将获得视频讲座,通过全面的视觉解释清楚地解释概念。

您还将看到苹果、亚马逊、谷歌和微软等顶级科技公司的面试问题。

我涵盖了您需要了解的有关技术面试流程的所有内容!

因此,无论您是有兴趣深入学习世界顶级编程语言,还是有兴趣学习基本算法、数据结构和性能分析(这些构成了每个有成就的程序员/设计师或软件架构师的核心基础技能),并且很高兴能够在您的下一次技术面试中取得好成绩这是适合您的课程!

这就是您今天注册后得到的:

终身访问44 小时以上的高清质量视频。没有包月。随时随地按照自己的节奏学习

每当您有疑问或遇到困难时,都会在课程问答中提供友好而快速的支持

30 天全额退款保证!

本课程旨在帮助您实现职业目标。无论您是想深入了解数据结构和算法、增加收入潜力还是只是想要一份更自由的工作,这都是适合您的课程!

本课程涵盖的主题。

第 1 节 – 简介

  • 什么是数据结构?
  • 什么是算法?
  • 为什么数据结构和算法很重要?
  • 数据结构的类型
  • 算法类型

第 2 节 – 递归

  • 什么是递归?
  • 为什么我们需要递归?
  • 递归是如何工作的?
  • 递归与迭代解决方案
  • 何时使用/避免递归?
  • 如何用三步写出递归?
  • 如何使用递归查找斐波那契数列?

第 3 部分 – 破解递归面试问题

  • 问题 1 – 数字之和
  • 问题 2 – 电源
  • 问题 3 – 最大公约数
  • 问题 4 – 十进制转二进制

第 4 部分 – 挑战递归问题的奖励(练习)

  • 力量
  • 阶乘
  • 数组的积
  • 递归范围
  • 谎言
  • 撤销
  • 是回文
  • 一些递归
  • 压扁
  • 资本化优先
  • 嵌套EvenSum
  • 大写单词
  • 字符串化数字
  • 收集字符串

第 5 节 – 大 O 表示法

  • 类比和时间复杂度
  • 大 O、大 Theta 和大 Omega
  • 时间复杂度示例
  • 空间复杂度
  • 删除常数和非主导项
  • 加法与乘法
  • 如何使用Big O测量代码?
  • 如何找到递归调用的时间复杂度?
  • 如何衡量多次调用的递归算法?

第 6 节 – Big O 面试十大问题(亚马逊、Facebook、苹果和微软)

  • 乘积和总和
  • 打印对
  • 打印无序对
  • 打印无序对 2 数组
  • 打印无序对 2 阵列 100000 个单位
  • 撤销
  • O(N) 等价物
  • 阶乘复杂度
  • 斐波那契复杂度
  • 2 的幂

第 7 节 – 数组

  • 什么是数组?
  • 数组类型
  • 内存中的数组
  • 创建一个数组
  • 插入操作
  • 遍历操作
  • 访问数组的元素
  • 在数组中搜索元素
  • 从数组中删除一个元素
  • 一维数组的时间和空间复杂度
  • 一维数组练习
  • 创建二维数组
  • 插入 – 二维数组
  • 访问二维数组的元素
  • 遍历——二维数组
  • 在二维数组中搜索元素
  • 删除——二维数组
  • 二维数组的时间和空间复杂度
  • 何时使用/避免数组

第 8 部分 – 破解数组面试问题(Amazon、Facebook、Apple 和 Microsoft)

  • 问题 1 – 号码缺失
  • 问题 2 – 配对
  • 问题 3 – 在数组中查找一个数字
  • 问题 4 – 两个 int 的最大乘积
  • 问题 5 – 是独一无二的
  • 问题 6 – 排列
  • 问题 7 – 旋转矩阵

第 9 节 – 具有挑战性的数组问题(练习)

  • 中间功能
  • 二维列表
  • 最佳得分
  • 缺失号码
  • 重复号码

第 10 节 – 链接列表

  • 什么是链表?
  • 链表与数组
  • 链表的类型
  • 内存中的链表
  • 单链表的创建
  • 插入内存中的单链表
  • 单链表算法中的插入
  • 单链表中的插入方法
  • 单链表的遍历
  • 在单链表中搜索值
  • 从单链表中删除节点
  • 单链表的删除方法
  • 删除整个单链表
  • 单链表的时间和空间复杂度

第 11 节 – 循环单链表

  • 循环单链表的创建
  • 循环单链表中的插入
  • 循环单链表的插入算法
  • 循环单链表中的插入方法
  • 循环单链表的遍历
  • 在循环单链表中搜索节点
  • 从循环单链表中删除节点
  • 循环单链表的删除算法
  • 循环单链表中的方法
  • 删除整个循环单链表
  • 循环单链表的时间和空间复杂度

第 12 节 – 双向链表

  • 双向链表的创建
  • 双向链表中的插入
  • 双链表的插入算法
  • 双链表的插入方法
  • 双链表的遍历
  • 双链表的反向遍历
  • 在双向链表中搜索节点
  • 删除双向链表中的节点
  • 双链表的删除算法
  • 双链表的删除方法
  • 删除整个双向链表
  • 双链表的时间和空间复杂度

第 13 节 – 循环双向链表

  • 循环双向链表的创建
  • 循环双向链表中的插入
  • 循环双向链表的插入算法
  • 循环双向链表中的插入方法
  • 循环双向链表的遍历
  • 循环双向链表的反向遍历
  • 在循环双向链表中搜索节点
  • 从循环双向链表中删除节点
  • 循环双向链表的删除算法
  • 循环双向链表的删除方法
  • 整个循环双向链表
  • 循环双向链表的时间和空间复杂度
  • 链表与数组的时间复杂度

第 14 节 – 破解链表面试问题(Amazon、Facebook、Apple 和 Microsoft)

  • 链表类
  • 问题 1 – 删除重复项
  • 问题 2 – 返回第 K 个到最后一个
  • 问题 3 – 分区
  • 问题 4 – 链表求和
  • 问题 5 – 交叉口

第 15 节 – 堆栈

  • 什么是堆栈?
  • 堆栈是什么以及为什么?
  • 堆栈操作
  • 使用数组与链表的堆栈
  • 使用数组进行堆栈操作(Create、isEmpty、isFull)
  • 使用数组进行堆栈操作(压入、弹出、查看、删除)
  • 使用数组的堆栈的时间和空间复杂度
  • 使用链表进行堆栈操作
  • 堆栈方法 – 使用链表的 Push、Pop、Peek、Delete 和 isEmpty
  • 使用链表的堆栈的时间和空间复杂度
  • 何时使用/避免堆栈
  • 堆栈测验

第 16 节 – 队列

  • 什么是队列?
  • 使用数组的线性队列操作
  • 使用线性队列数组的 Create、isFull、isEmpty 和 enQueue 方法
  • 使用线性队列数组的出队、查看和删除方法
  • 使用数组的线性队列的时间和空间复杂度
  • 为什么要循环队列?
  • 使用数组的循环队列操作
  • 使用数组在循环队列中创建、入队、isFull 和 isEmpty 方法
  • 使用数组在循环队列中出队、查看和删除方法
  • 使用数组的循环队列的时间和空间复杂度
  • 使用链表进行队列操作
  • 使用链表在队列中创建、入队和 isEmpty 方法
  • 使用链表在队列中出列、查看和删除方法
  • 使用链表的队列的时间和空间复杂度
  • 数组与链表的实现
  • 何时使用/避免队列?

第 17 节 – 破解堆栈和队列面试问题(Amazon、Facebook、Apple、Microsoft)

  • 问题 1 – 三合一
  • 问题 2 – 堆栈最小值
  • 问题 3 – 一堆盘子
  • 问题 4 – 通过堆栈排队
  • 问题 5 – 动物收容所

第 18 节 – 树/二叉树

  • 什么是树?
  • 为什么是树?
  • 树术语
  • 如何在Java中创建一个基本的树?
  • 二叉树
  • 二叉树的类型
  • 二叉树表示
  • 创建二叉树(链表)
  • 前序遍历二叉树(链表)
  • 中序遍历二叉树(链表)
  • 后序遍历二叉树(链表)
  • LevelOrder遍历二叉树(链表)
  • 在二叉树(链表)中搜索节点
  • 在二叉树(链表)中插入节点
  • 从二叉树(链表)中删除节点
  • 删除整个二叉树(链表)
  • 创建二叉树(数组)
  • 插入一个值二叉树(数组)
  • 在二叉树(数组)中搜索节点
  • 前序遍历二叉树(数组)
  • 中序遍历二叉树(数组)
  • 后序遍历二叉树(数组)
  • 层序遍历二叉树(数组)
  • 从二叉树(数组)中删除一个节点
  • 整个二叉树(数组)
  • 链表与 Python 列表二叉树

第 19 节 – 二叉搜索树

  • 什么是二叉搜索树?为什么我们需要它?
  • 创建二叉搜索树
  • 向 BST 插入节点
  • 遍历 BST
  • 在 BST 中搜索
  • 从 BST 中删除节点
  • 删除整个 BST
  • BST 的时间和空间复杂度

第 20 节 – AVL 树

  • 什么是 AVL 树?
  • 为什么选择 AVL 树?
  • AVL 树的常见操作
  • 在AVL(左左条件)中插入节点
  • 在AVL中插入节点(左右条件)
  • 在AVL(右右条件)中插入节点
  • 在AVL(右左条件)中插入节点
  • 在AVL中插入节点(全部一起)
  • 在AVL中插入节点(方法)
  • 从 AVL 中删除节点(LL、LR、RR、RL)
  • 从AVL中删除一个节点(全部一起)
  • 从AVL中删除节点(方法)
  • 删除整个 AVL
  • AVL树的时间和空间复杂度

第 21 节 – 二叉堆

  • 什么是二叉堆?为什么我们需要它?
  • 二叉堆上的常见操作(Creation、Peek、sizeofheap)
  • 在二叉堆中插入一个节点
  • 从二叉堆中提取节点
  • 删除整个二进制堆
  • 二叉堆的时间和空间复杂度

第 22 节 – 特里树

  • 什么是特里树?为什么我们需要它?
  • Trie 上的常见操作(创建)
  • 在 Trie 中插入字符串
  • 在 Trie 中搜索字符串
  • 从 Trie 中删除一个字符串
  • Trie的实际使用

第 23 节 – 散列

  • 什么是哈希?为什么我们需要它?
  • 哈希术语
  • 哈希函数
  • 碰撞解决技术的类型
  • 哈希表已满
  • 解析技术的优缺点
  • 哈希的实际应用
  • 散列与其他数据结构

第 24 节 – 排序算法

  • 什么是排序?
  • 排序类型
  • 排序术语
  • 冒泡排序
  • 选择排序
  • 插入排序
  • 桶排序
  • 归并排序
  • 快速排序
  • 堆排序
  • 排序算法比较

第 25 节 – 搜索算法

  • 搜索算法简介
  • 线性搜索
  • Python 中的线性搜索
  • 二分查找
  • Python 中的二分查找
  • 二分查找的时间复杂度

第 26 节 – 图算法

  • 什么是图表?为什么要绘制图表?
  • 图术语
  • 图的类型
  • 图形表示
  • 使用邻接矩阵在 Java 中绘制图形
  • 使用邻接表在 Java 中绘制图形

第27节-图遍历

  • 广度优先搜索算法(BFS)
  • Java 中的广度优先搜索算法 (BFS) – 邻接矩阵
  • Java 中的广度优先搜索算法 (BFS) – 邻接表
  • 广度优先搜索(BFS)算法的时间复杂度
  • 深度优先搜索 (DFS) 算法
  • Java 中的深度优先搜索 (DFS) 算法 – 邻接表
  • Java 中的深度优先搜索 (DFS) 算法 – 邻接矩阵
  • 深度优先搜索(DFS)算法的时间复杂度
  • BFS 遍历与 DFS 遍历

第 28 节 – 拓扑排序

  • 什么是拓扑排序?
  • 拓扑排序算法
  • 使用邻接表进行拓扑排序
  • 使用邻接矩阵的拓扑排序
  • 拓扑排序的时间和空间复杂度

第 29 节 – 单源最短路径问题

  • S什么是单源最短路径问题?
  • 单源最短路径问题 (SSSPP) 的广度优先搜索 (BFS)
  • 使用邻接表在 Java 中实现 SSSPP 的 BFS
  • 使用邻接矩阵在 Java 中实现 SSSPP 的 BFS
  • SSSPP 的 BFS 时间和空间复杂度
  • 为什么 BFS 不能与加权图一起使用?
  • 为什么 DFS 不适用于 SSSP?

第 30 节 – Dijkstra 算法

  • SSSPP 的 Dijkstra 算法
  • Java 中的 Dijkstra 算法 – 1
  • Java 中的 Dijkstra 算法 – 2
  • Dijkstra 负循环算法

第 31 节 – 贝尔曼福特算法

  • 贝尔曼福特算法
  • 带负循环的贝尔曼福特算法
  • 贝尔曼·福特为什么要运行 V-1 次?
  • 贝尔曼·福特的Python语言
  • BFS vs Dijkstra vs 贝尔曼·福特

第32节-所有对最短路径问题

  • 所有对最短路径问题
  • 所有对最短路径的试运行

第 33 节 – 弗洛伊德·沃歇尔

  • 弗洛伊德·沃歇尔算法
  • 为什么是弗洛伊德·沃歇尔?
  • 弗洛伊德·沃歇尔(Floyd Warshall)具有负循环,
  • 弗洛伊德·沃歇尔在爪哇,
  • BFS vs Dijkstra vs Bellman Ford vs Floyd Warshall,

第34节-最小生成树

  • 最小生成树,
  • 不相交集,
  • Java 中的不相交集,

第 35 节 – Kruskal 和 Prim 算法

  • 克鲁斯卡尔算法,
  • Python 中的克鲁斯卡尔算法,
  • 普里姆算法,
  • Python 中的 Prim 算法,
  • 普里姆 vs 克鲁斯卡尔

第 36 节 – 破解图和树面试问题(Amazon、Facebook、Apple、Microsoft)

第 37 节 – 贪婪算法

  • 什么是贪心算法?
  • 众所周知的贪心算法
  • 活动选择问题
  • Python 中的活动选择问题
  • 硬币找零问题
  • Python 中的硬币找零问题
  • 分数背包问题
  • Python 中的分数背包问题

第 38 节 – 分而治之算法

  • 什么是分而治之算法?
  • 常见的分而治之算法
  • 如何使用分而治之的方法解决斐波那契数列?
  • 数量因素
  • Java 中的数字因子
  • 入室抢劫者
  • Java 中的入室盗窃问题
  • 将一个字符串转换为另一个字符串
  • 在 Java 中将一个字符串转换为另一个字符串
  • 零一背包问题
  • Java中的零一背包问题
  • 最长公共序列问题
  • Java中的最长公共子序列
  • 最长回文子序列问题
  • Java 中的最长回文子序列
  • 达到最后一个单元问题的最低成本
  • 使用 Java 到达 2D 数组中最后一个单元格的最低成本
  • 以给定成本到达最后一个单元格的方式数量
  • Java 中以给定成本到达最后一个单元格的方法数

第39节-动态规划

  • 什么是动态规划?(重叠属性)
  • DC的名字从何而来?
  • 自上而下的记忆化
  • 自下而上的制表
  • 自上而下与自下而上
  • 归并排序是动态规划吗?
  • 使用动态规划的数因数问题
  • 数字因子:自上而下和自下而上
  • 使用动态规划的入室抢劫问题
  • 入室盗窃:自上而下和自下而上
  • 使用动态编程将一个字符串转换为另一个字符串
  • 使用自底向上转换字符串
  • 使用动态规划的零一背包
  • 零一背包 – 自上而下
  • 零一背包-自下而上

第 40 节 – 具有挑战性的动态规划问题

  • 最长重复子序列长度问题
  • 最长公共子序列长度问题
  • 最长公共子序列问题
  • 差异实用程序
  • 最短公共子序列问题
  • 最长回文子序列的长度
  • 子集和问题
  • 鸡蛋掉落拼图
  • 最大长度链对

第 41 节 – 解决问题的秘诀

  • 介绍
  • 第 1 步 – 了解问题
  • 第 2 步 – 示例
  • 第三步——分解
  • 第 4 步 – 求解或简化
  • 第 5 步 – 回顾和重构

第 41 节 – 狂野西部

本课程适合谁:

  • 任何有兴趣了解更多有关数据结构和算法或技术面试过程的人!
  • 自学成才的程序员,具有 Java 基础知识,希望成为数据结构和算法专业人士,并开始面试技术职位!
  • 目前正在学习计算机科学的学生,需要数据结构和算法方面的补充材料以及毕业后面试准备!
  • 需要为即将到来的编码面试进行练习的专业程序员。

发表回复

后才能评论

尊敬的用户,您好!由于部分培训机构和留学生的举报,近期导致网站大量链接暂时失效。对此给您带来的不便,我们深表歉意。任何链接失效的资源,欢迎您添加侧边栏二维码随时反馈,我们将在48小时内为您提供新的网盘链接。如果您对此不便感到不满,您也可在48小时内申请无理由退款。感谢您的理解与支持!

Windows播放器推荐:Potplayer Potplayer 是免费的 Windows 播放器,支持双字幕和自动翻译功能。以下是操作指南: 挂载字幕 加载中文字幕:右击选择 字幕 -> 字幕设置,取消“只匹配文件名字幕”选项。可调整字幕颜色、位置和大小。 双字幕设置:右击 字幕 -> 选择字幕 -> 次字幕输出,设置主字幕和次字幕。 自动翻译 若可访问 Google 翻译服务,选择 字幕 -> 实时字幕翻译,勾选 总是使用 和 Google Translate,即可实时翻译英文字幕。 Potplayer 让观看更智能,学习体验升级。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可联络站长解决。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源