【九章算法】基础班 Python+Java 百度云
Python/Java 双语教学,5周时间从0到1,系统掌握Python/Java 语言和基础算法
-
第一章【互动】零基础找CS工作,该如何准备?(Python 语言)
- 如何从零基础开始在最短的时间内拿到offer?
简历全攻略:如何写好简历?怎样准备项目?
面试大揭秘:IT技术面试内容有哪些?
零基础学习路径规划:如何从0开始规划CS求职路径?
- Python基础入门
变量及其运算
Reverse 3-digit Integer
Swap Two Variables
-
第二章【互动】零基础找CS工作,该如何准备?(Java 语言)
- 课程与老师介绍
- 简历与面试技巧
- java基础入门知识讲解
-
第三章【互动】编程基础知识:循环、函数与面向对象(Python 语言)
- 程序控制流
如何写好if语句
for 循环和 while 循环
- 函数
函数的定义及使用
函数的参数传递
- 面向对象入门
什么是面向对象
类和对象的概念
-
第四章【互动】编程基础知识:变量与程序控制流(Java 语言)
- Java语言基础 I
IDE介绍:IntelliJ
int变量及其范围
char变量,什么是Unicode
boolean变量的与或非运算
如何写好if语句
for循环和while循环
- 实战面试真题
character to integer
数组的最大值
打印矩阵
reverse integer
-
第五章【直播】CS 工作介绍,算法基础知识
- 如何快速拿到软件工程师offer
- 语言基础知识
- 算法和数据结构
算法与数据结构的概念
算法和数据结构的关系
- 0 和 1 的艺术:位运算
- 短时间就能学会的算法:贪心法
LintCode 116. Jump Game
-
第六章【互动】列表、元组、字符串与引用(Python 语言)
- 什么是数据结构?
- 列表(List)和元组(Tuple)
列表的概念及常用操作
元组的概念及常用操作
- 字符串(String)
字符串的概念及常用操作
字符和 Unicode
- 什么是引用(Reference)?
计算机内存模型
-
第七章【互动】String、面向对象、Reference、数据结构(Java 语言)
- Java语言基础 II
字符串 String
函数 Function
类和对象 Class & Object
什么是面向对象 Object Oriented
- 实战面试真题
convert lower case to upper case
判断回文字符串
convert string to integer
- OOP
what is reference
basic data struct
-
第八章【互动】线性数据结构-链表(Python 语言)
- 链表(Linked list)
链表的构建
链表的常用操作
- 算法的时间复杂度分析
-
第九章【互动】链表及其操作,算法的时间复杂度(Java 语言)
- OO基础,reference和链表
什么是reference
链表及其CRUD操作
linked list v.s. array list
- 实战面试真题
find node in linked list
insert into sorted linked list
reverse linked list
remove n-th node from last
merge two sorted linked list
-
第十章【直播】字符串 String
- 字符串基本操作
- 字符的ascii和unicode编码
- 回文串
回文串的对称性
回文串字母个数的奇偶性
- 使用双指针解决字符串匹配
-
第十一章【直播】链表 LinkedList
- 链表基本操作
- 在链表中使用 dummy 头结点
- 在链表中使用前后两颗指针
-
第十二章【互动】手把手带写代码——字符串(Python 语言)
- 1781.Reverse ASCII Encoded Strings
- 1784.Decrease To Be Palindrome
- 958.Palindrome Data Stream
- 1819.Longest Semi Alternating Substring
-
第十三章【互动】手把手带写代码——字符串(Java 语言)
- 1781.Reverse ASCII Encoded Strings
- 1784.Decrease To Be Palindrome
- 958.Palindrome Data Stream
- 1819.Longest Semi Alternating Substring
-
第十四章【互动】手把手带写代码——链表(Python 语言)
- 219.Insert Node in Sorted Linked List
- 452.Remove Linked List Elements
- 228.Middle of Linked List
- 170.Rotate List
-
第十五章【互动】手把手带写代码——链表(Java 语言)
- 219.Insert Node in Sorted Linked List
- 452.Remove Linked List Elements
- 228.Middle of Linked List
- 170.Rotate List
-
第十六章【互动】栈和队列(Python 语言)
- 栈(Stack)
栈的实现及常用操作
栈在操作系统中的应用
- 队列(Queue)
队列的实现及常用操作
Python 中的 queue 模块
-
第十七章【互动】栈和队列(Java 语言)
- 栈和队列
什么是数据结构
栈及其实现
队列及其实现
集合类数据结构总结
算法的时间和空间复杂度
- 实战面试真题
括号匹配
栈的两种实现方式
队列的实现
-
第十八章【互动】二叉树的遍历方式(Python 语言)
- 什么是树(Tree)?
二叉树的定义
二叉树的构建
- 二叉树的深度优先遍历
深度优先遍历的实现
按层次遍历
- 递归(Recursive)
什么是递归 ?
递归的三要素
递归算法的时间和空间复杂度分析
- 二叉树的深度优先遍历
前序遍历
中序遍历
后序遍历
-
第十九章【互动】二叉树的遍历方式(Java 语言)
- 树和递归
最火的数据结构:树
什么是递归
树的三种遍历方式
递归算法的时间空间复杂度分析
- 二叉树的宽度优先遍历
宽度优先遍历的实现
按层次遍历
- 实战面试真题
求树的高度
求所有叶子结点的和
求所有根到叶子的路径
翻转二叉树
-
第二十章【直播】栈和队列 Stack & Queue
- - 栈 Stack
栈的定义和基本操作
两个栈协同解题
使用栈解决嵌套类型问题
- 队列 Queue
队列的定义和基本操作
使用队列解决 Iterator 型问题
-
第二十一章【直播】二叉树、二叉树的宽度与深度优先遍历,递归
- 二叉树的概念
- 二叉树的搜索
二叉树的宽度优先遍历
递归
二叉树的深度优先遍历
二叉树的前中后序遍历
-
第二十二章【互动】手把手带写代码——栈和队列(Python 语言)
- 492.Implement Queue by Linked List
- 541.Zigzag Iterator II
- 421.Simplify Path
- 575.Decode String
-
第二十三章【互动】手把手带写代码——栈和队列(Java 语言)
- 492.Implement Queue by Linked List
- 541.Zigzag Iterator II
- 421.Simplify Path
- 575.Decode String
-
第二十四章【互动】手把手带写代码——二叉树(Python 语言)
- 71.Binary Tree Zigzag Level Order Traversal
- 650.Find Leaves of Binary Tree
- 1807.Fibonacci easy
递推法
递归法
-
第二十五章【互动】手把手带写代码——二叉树(Java 语言)
- 71.Binary Tree Zigzag Level Order Traversal
- 650.Find Leaves of Binary Tree
- 1807.Fibonacci easy
递推法
递归法
-
第二十六章【互动】二叉搜索树(Python 语言)
- 二分搜索树(BST)
什么是 BST ?
BST 的常用操作
BST 在实际系统中的应用
-
第二十七章【互动】二叉搜索树(Java 语言)
- 二分搜索树(BST)
什么是 BST ?
BST 的常用操作
BST 在实际系统中的应用
-
第二十八章【互动】集合与字典 set & dictionary(Python 语言)
- 集合(Set)和字典(Dictionary)
集合的定义及常用操作
字典的定义及常用操作
集合和字典的实现
-
第二十九章【互动】哈希表 Set & Map(Java 语言)
- 集合和索引
- 哈希表及其实现
- 解决冲突的方法
重哈希
开散列
闭散列
-
第三十章【直播】利用分治法解决树的问题,二叉搜索树
- 二叉搜索树
二叉搜索树的概念和特点
二叉搜索树的基本操作
- 算法 vs 算法范式
- 分治法
利用分治法构造二叉搜索树
利用分治法解决子树问题
-
第三十一章【直播】哈希 Hash
- Hash的定义和特性
- set/HashSet
- dictionary/HashMap
-
第三十二章【互动】手把手带写代码——分治法(Python 语言)
- 1524.Search in a Binary Search Tree
- 701.Trim a Binary Search Tree
- 1359.Convert Sorted Array to Binary Search Tree
-
第三十三章【互动】手把手带写代码——分治法(Java 语言)
- 1524.Search in a Binary Search Tree
- 701.Trim a Binary Search Tree
- 1359.Convert Sorted Array to Binary Search Tree
-
第三十四章【互动】手把手带写代码——哈希表(Python 语言)
- 1796.K-Difference
- 1299.Bulls and Cows
- 1035.Rabbits in Forest
- 856.Sentence Similarity
-
第三十五章【互动】手把手带写代码——哈希表(Java 语言)
- 1796.K-Difference
- 1299.Bulls and Cows
- 1035.Rabbits in Forest
- 856.Sentence Similarity
-
第三十六章【互动】排序算法 Quick Sort & Merge Sort(Python 语言)
- 普通排序算法
选择排序
插入排序
冒泡排序
- 归并排序
归并排序的算法思想
归并排序的 Python 实现
- 快速排序
快速排序的算法思想
快速排序的 Python 实现
- 使用 Python 的 Sort 和 cmp 函数实现各种情况下的排序
-
第三十七章【互动】高级排序算法(Java 语言)
- 排序
插入排序
选择排序
归并排序
快速排序
Comparator的使用
- 实战面试真题
sort colors
重排数组构成最大数
-
第三十八章【直播】排序
- 快速排序
Partition
- 归并排序
- 使用sort和comparator排序
- 桶排序
-
第三十九章【互动】手把手带写代码——排序(Python 语言)
- 49.Sort Letters by Case
- 532.Reverse Pairs
- 1160.Campus Bikes
-
第四十章【互动】手把手带写代码——排序(Java 语言)
- 49.Sort Letters by Case
- 532.Reverse Pairs
- 1160.Campus Bikes