-
Notifications
You must be signed in to change notification settings - Fork 40
Open
Description
本周主要对15,16日所讲内容进行了梳理,输出数据结构,算法脑图。对于所讲内容有个框架性认识,在之前的认识脉络上稍微清楚了一点,但离具体掌握与内化还有不少距离。
从基础数据结构(数组,链表),map,再到堆,栈,队列,集合。站在Java实现map,堆,栈,队列,集合等数据结构的角度看,实现方式都是数组或者链表。
而在链表的基础上,如果一个节点不仅仅指向一个节点,则会演化出树的结构。也就是链表像一条直线,而树则像一个平面。图的概念则比树则更加复杂,树是一种特殊的图。
对于树的数据结构及遍历算法的讲解则是最多的。二叉搜索树的定义:左节点的最大值小于根节点,右节点的最小值大约根节点。并且对于所有子节点同样满足。从而导致对于二叉搜索树中序的遍历则为升序遍历。
BFS与DFS的理解与使用,则是后续贪婪算法,DP的基础。
时间复杂度与空间复杂度。时间复杂度不直观的主要是0(logN),k的N次方。等比数列的求和的时间复杂度为:0(logN),二叉树,有K层,则时间复杂度则为KN次方。推倒过程还需自己再跑一遍。空间复杂度则相对简单。
算法方面,大的学习方向为1)递归-循环 2)分治(Divide & Conquer) 3)在树(图/状态集)中寻找特定节点4)二分查找 5)贪心算法 6)动态规划
接下来的方向:1)每种数据结构在练习的时候充分体会其数据特性,并把握如何使用该数据结构的在解决该问题时的巧妙性。
2)时间复杂度与空间复杂度
3)几个题型的梳理再次练习
a 爬楼梯问题
b 8皇后问题
c 括号问题的扩展
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels

