【九章算法】基础班 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