文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。
在极客时间《数据结构和算法之美》最后,王争老师加餐了7天训练内容,对每一部分需要掌握的数据结构与算法做了总结。现在我把这些题目放在一起,并且和自己写的代码做了超链接。

数组

实现一个支持动态扩容的数组
实现一个大小固定的有序数组,支持动态增删改操作
实现两个有序数组合并为一个有序数组

链表

实现单链表、循环链表、双向链表,支持增删操作
实现单链表反转
实现两个有序的链表合并为一个有序链表
实现求链表的中间结点

用数组实现一个顺序栈
用链表实现一个链式栈
编程模拟实现一个浏览器的前进、后退功能

队列

用数组实现一个顺序队列
用链表实现一个链式队列
实现一个循环队列

递归

编程实现斐波那契数列求值 f(n)=f(n-1)+f(n-2) (用的是LeetCode的题目走楼梯,本质相同)
编程实现求阶乘 n!(未完成)
编程实现一组数据集合的全排列(LeetCode题目46)

排序

实现归并排序、快速排序、插入排序、冒泡排序、选择排序
编程实现 O(n) 时间复杂度内找到一组数据的第 K 大元素

二分查找

实现一个有序数组的二分查找算法
实现模糊二分查找算法(比如大于等于给定值的第一个元素)

散列表

实现一个基于链表法解决冲突问题的散列表
实现一个 LRU 缓存淘汰算法

字符串

实现一个字符集,只包含 a~z 这 26 个英文字母的 Trie 树
实现朴素的字符串匹配算法
KMP算法

二叉树

实现一个二叉查找树,并且支持插入、删除、查找操作
实现查找二叉查找树中某个节点的后继、前驱节点
实现二叉树前、中、后序以及按层遍历

实现一个小顶堆、大顶堆、优先级队列
实现堆排序
利用优先级队列合并 K 个有序数组(未完成)
求一组动态数据集合的最大 Top K(未完成)

实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法
实现图的深度优先搜索、广度优先搜索
实现 Dijkstra 算法、A* 算法(未完成)
实现拓扑排序的 Kahn 算法、DFS 算法

回溯

利用回溯算法求解八皇后问题
利用回溯算法求解 0-1 背包问题

分治

利用分治算法求一组数据的逆序对个数

动态规划

0-1 背包问题
最小路径和(详细可看 @Smallfly 整理的 Minimum Path Sum)
编程实现莱文斯坦最短编辑距离
编程实现查找两个字符串的最长公共子序列
编程实现一个数据序列的最长递增子序列(未完成)

极客时间算法练习题总结相关推荐

  1. 极客时间-算法训练营1.2 实战题目解析:移动零

    一 序 本文属于极客时间-算法训练营 学习笔记系列. 二 刷题步骤 第一遍 五分钟:读题 + 思考 直接看解法:多看几种,比较解法优劣 背诵.默写好的解法 第二遍 马上自己写 --> Leetc ...

  2. 笔记1 第11课 贪心初步 ——柠檬水找零,分发饼干,跳跃游戏,完成所有任务所需最小能量——极客时间算法

    之前收藏了极客时间的算法训练营3期 共21课,计划每一课写博客来记录学习,主要形式为 方法类型1 题1 题解 题2 题解 方法类型2 题1 题解 -- 题目大体来自leetcode 和 acwing ...

  3. 笔记1 第13课 动规2 ——买卖股票最佳时机,打家劫舍,零钱找兑——极客时间算法

    之前收藏了极客时间的算法训练营3期 共21课,计划每一课写博客来记录学习,主要形式为 方法类型1 题1 题解 题2 题解 方法类型2 题1 题解 -- 题目大体来自leetcode 和 acwing ...

  4. 极客时间算法训练营2019版LeetCode练习题题库

    03课 数组.链表.跳表 两数之和题目 Arrays实战 LeetCode#11 盛最多水的容器 LeetCode#283 移动零 LeetCode#70 爬楼梯 LeetCode#15 三数之和 L ...

  5. 极客时间-算法训练营-第二周

    文章目录 学习笔记 1.哈希表 定义 图示 具体实现是Map和Set HashSet源码分析 HashMap源码分析 时间复杂度 实战题目 [242. 有效的字母异位词](https://leetco ...

  6. 极客时间 算法训练营 毕业总结

    不知不觉8周的算法训练营也接近尾声,这期间训练营对自己的影响有三方面 一方面是收获了刻意练习,终身成长这些可以产生长远影响的思想,这里推荐三本书 卡罗尔·德韦克的<终身成长>.安德斯·艾利 ...

  7. 极客时间 算法训练营 第一周总结

    学习总结 学习内容 课程内容 第三课 数组 链表 跳表 第四课 栈 队列 知识点总结 数组 数组用一块连续的内存空间,来存储相同类型的一组数据. 支持随机访问,时间复杂度 O(1) 插入.删除操作比较 ...

  8. 极客时间-算法面试40讲

    一.合格程序员第一步:算法 1.编程的内功修炼 2.去国内一流互联网公司的必要条件 3.硅谷互联网公司面试更是要求当场写算法题目 1.电话面试 2.现场手撕代码 4.算法和数据结构是有趣且实用 区块链 ...

  9. 极客时间和极客学院_极客奔跑

    极客时间和极客学院 I'm not a natural runner. I'm reasonably fit given that I spend most of the day sat in my ...

最新文章

  1. 计算机科学与导论期末论文题目,★计算机科学与技术导论论文题目计算机科学与技术导论毕业论文题目大全计算机科学与技术导论论文选题参考(3页)-原创力文档...
  2. 第十五届全国大学生智能汽车竞赛山东赛区国赛获奖队伍详细信息
  3. Android 程序适应多种多分辨率
  4. linux和哪些主机配了互信,linux主机互信
  5. C++学习笔记系列二
  6. 大型网站首页执行时间0.3秒,性能算好还是算坏?
  7. Android:更好的自定义字体方案
  8. C++学习笔记----2.4 C++对象的内存模型
  9. Atitit  数据库的事件机制--触发器与定时任务attilax总结
  10. SqlServer彻底卸载,适用于任何版本,亲测了n次都可用
  11. 获取微信开放平台申请移动应用时的应用签名和应用包名
  12. 浏览器主页被篡改怎么办,主页被篡改恢复方法
  13. jle汇编_汇编学习之路
  14. 工作中常用的英文单词缩写
  15. 篇16:Windows安装配置Nessus时遇到的一些问题说明
  16. 湘大学生住宿物业管理情况调查(转自《文心报》)
  17. 九龙证券|长线资金整体加仓 青睐能源科技材料等板块
  18. Android获取根目录
  19. 跨平台桌面应用的开发框架——Electron
  20. 面对音乐行业解决音乐侵权严重痛点:启动数字化转型的设计思维工作坊

热门文章

  1. IIS Server Farms入门
  2. [2016-03-15]rabbitmq notes
  3. uilabel 自适应
  4. 兼容门:先卸载腾讯QQ,再卸载360软件!
  5. java php des加密 byte数组16进制 DESTools
  6. springboot中getOutputStream() has already been called for this response和java.io.FileNotFoundException
  7. apollo报:系统出错,请重试或联系系统负责人
  8. Oracle集合查询
  9. oracle 增加一个新分区,oracle 11g 新增分区
  10. 在线安装php,CentOS在线安装PHP|dayblog-天天博客|PHP交流,PHP技术,PHP博客,博客交流,dayblog,blog,天天博客...