说明

最近在读左神的书---《程序员代码面试指南-IT名企算法与数据结构题目最优解(第二版)》以及看了一些左神的基础、进阶、高频等视频课程,为了记录自己的学习成果,并且方便以后查看,将自己的想法与使用python实现的代码记录在此博客。

视频

基础

时间复杂度

对数器

冒泡排序

冒泡排序对数器测试

选择排序

插入排序

递归行为时间复杂度公式

归并排序

小和问题

逆序对问题

荷兰国旗问题

快速排序

随机快速排序

堆排序

排序算法稳定性

桶排序

用列表实现大小固定的队列和栈

设计一个有getMin功能的栈

由两个栈组成的队列

转圈打印矩阵

旋转正方形矩阵

“之”字形打印矩阵

反转单向和双向链表

在行列都排好序的矩阵中找到指定数

打印两个有序链表的公共部分

判断一个链表是否是回文结构

将单向链表按某值分成左边小、中间相等、右边大的形式

实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式

如何直观的打印一颗二叉树

判断一颗二叉树是否为搜索二叉树和完全二叉树

折纸问题

判断一颗二叉树是否是平衡二叉树

二叉树的序列化和反序列化

在二叉树中找到一个节点的后继节点

统计完全二叉树的节点数

设计RandomPool结构

认识哈希函数(散列函数)

认识布隆过滤器

一致性哈希算法的基本原理

岛问题

并查集的实现

字典数(前缀树)的实现

分金条的最小花费

随时找到数据流中的中位数

做项目的最大收益

拼接所有字符串产生字典顺序最小的大写字符串

进阶

生成窗口最大值数组

单调栈结构

求最大子矩阵的大小

最大值减去最小值小于或等于num的子数组数量

可见的山峰对数量

遍历二叉树的神级方法(Morris遍历)

找到二叉树中的最大搜索子树

判断一颗二叉树是否是平衡二叉树

二叉树节点间的最大距离

派对的最大快乐值

机器人达到指定位置方法数

换钱的方法数

排成一条线的纸牌博弈问题

未排序正整数组中累加和为指定值的最长子数组长度

未排序数组中累加和为给定值的最长子数组系列问题

书籍

栈和队列

设计一个有getMin功能的栈

由两个栈组成的队列

用一个栈实现另一个栈的排序

如何仅用递归函数和栈操作逆序一个栈

生成窗口最大值数组

单调栈结构

求最大子矩阵的大小

最大值减去最小值小于或等于num的子数组数量

可见的山峰对数量

链表问题

打印两个有序链表的公共部分

在单链表和双链表中删除倒数第K个节点

删除链表的中间节点和a/b处的节点

反转单项和双向链表

反转部分单向链表

判断一个链表是否是回文结构

将单向链表按某值分成左边小、中间相等、右边大的形式

在二叉树中找到一个节点的后继节点

两个单链表生成相加链表

将单链表的每K个节点之间逆序

删除无序单链表中值重复出现的节点

单链表中删除指定值的节点

将搜索二叉树转换成双向链表

单链表的选择排序

一种怪异的节点删除方式

向有环的环形链表中插入新节点

合并两个有序的单链表

按照左右半区的方式重新组合单链表

二叉树问题

实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式

如何直观的打印一颗二叉树

二叉树的按层打印和ZigZag打印

在二叉树中找到一个节点的后继节点

判断一颗二叉树是否为搜索二叉树和完全二叉树

判断一颗二叉树是否是平衡二叉树

二叉树的序列化和反序列化

遍历二叉树的神级方法(Morris遍历)

找到二叉树中的最大搜索子树

调整搜索二叉树中两个错误的节点

在二叉树中找到一个节点的后继节点

统计完全二叉树的节点数

二叉树节点间的最大距离

派对的最大快乐值

统计和生成所有不同的二叉树

通过先序和中序数组生成后续数组

找到二叉树中符合搜索二叉树条件的最大拓扑结构

通过有序数组生成平衡搜索二叉树

根据后续数组重建搜索二叉树

在二叉树中找到累加和为指定值的最长路径长度

打印二叉树的边界节点

判断t1树是否包含t2树全部的拓扑结构

递归和动态规划

斐波那契问题的递归和动态规划

矩阵的最小路径和

机器人达到指定位置方法数

换钱的最少货币数

换钱的方法数

排成一条线的纸牌博弈问题

信封嵌套问题

最长递增子序列

数组中最长连续序列

跳跃游戏

数字字符串转化为字母组合的种数

龙与地下城游戏问题

字符串的交错组成

最小编辑代价

最长公共子串问题

最长公共子序列问题

字符串问题

拼接所有字符串产生字典顺序最小的大写字符串

字典数(前缀树)的实现

判断两个字符串是否是变形词

判断两个字符串是否为旋转词

将整型字符串转成整数值

字符串的统计字符串

判断字符串数组中是否所有字符只出现了一次

在有序但含有空的数组中查找字符串

字符串的调整和替换

翻转字符串

找到指定的新类型字符

括号字符串的有效性和最长有效长度

找到字符串的最长无重复字符子串

数组中两个字符串的最小距离

大数据和空间限制

认识布隆过滤器

只有2GB内存在20亿个整数中找到出现次数最多的数

40个亿非负整数中找到未出现的数

找到100亿个URL中重复的URL及搜索词汇的TopK问题

一致性哈希算法的基本原理

岛问题

位运算

在其他数都出现k次的数组中找到只出现一次的数

在其他数都出现偶数次的数组中找到出现奇数次的数

整数的二进制表达中有多少个1

只用位运算不用算术运算实现

不用任何比较判断找出两个数中较大的数

不用额外变量交换两个整数的值

数组和矩阵问题

转圈打印矩阵

旋转正方形矩阵

“之”字形打印矩阵

在行列都排好序的矩阵中找到指定数

未排序正整数组中累加和为指定值的最长子数组长度

未排序数组中累加和为给定值的最长子数组系列问题

计算数组的小和

在数组中找到一个局部最小的位置

子矩阵的最大累加和问题

数组中子数组的最大累乘积

自然数组的排序

奇数下标都是奇数或者偶数下标都是偶数

子数组的最大累加和问题

打印N个数组整体最大的TopK

数组的partition调整

数组排序之后相邻数的最大差值

做项目的最大收益

分金条的最小花费

求最短通路值

不包含本位置值的累乘数组

边界都是1的最大正方形大小

不重复打印排序数组中相加和为给定值的所有二元组和三元组

最长的可整合子数组的长度

其它题目

折纸问题​​​​​​​​​​​​​​

设计RandomPool结构​​​​​​​

并查集的实现

随时找到数据流中的中位数

判断一个点是否在矩形内部

设计有setAll功能的哈希表

一行代码求两个数的最大公约数

判断一个点是否在三角形内部

能否完美拼成矩形

调整[0,x)区间上出现的概率

从N个数中等概率打印M个数

判断一个数是否是回文数

从5随机到7随机及其扩展

正数数组的最小不可组成和

累加出整个范围所有的数最少还需要几个数

在有序旋转数组中找到最小值​​​​​​​

《程序员代码面试指南第二版》Python实现(个人读书笔记)相关推荐

  1. 程序员代码面试指南第二版 4.猫狗队列

    welcome to my blog 程序员代码面试指南第二版 4.猫狗队列 题目描述 题目描述 实现一种猫狗队列的结构,要求如下: 1. 用户可以调用 add 方法将 cat 或者 dog 放入队列 ...

  2. 算法大神左程云耗尽5年心血分享程序员代码面试指南第2版文档

    前言 学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都 ...

  3. 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体

    准备一些链表和节点的实体,方便后面使用 java代码 /*** @Description:构造一个链表实体,方便后续构造链表* @Author: lizhouwei* @CreateDate: 201 ...

  4. 《程序员代码面试指南》第二章 链表问题 在单链表和双链表中删除倒数第K个节点...

    题目 在单链表和双链表中删除倒数第K个节点 java代码 /*** @Description:在单链表和双链表中删除倒数第K个节点* @Author: lizhouwei* @CreateDate: ...

  5. 《程序员代码面试指南》第二章 链表问题 搜索二叉树转换为双向链表

    样例 树的中序遍历:1 2 3 4 5 6 7 ,转换后双向链表的遍历:1 2 3 4 5 6 7 java代码 /*** @Description:搜索二叉树转换为双向链表* @Author: li ...

  6. 《程序员代码面试指南》第二章 链表问题 反转部分单向链表

    题目 给一个单向链表和开始和结束的位置,将这两位置区间链表进行反转 java代码 /*** @Description:反转部分单向链表* @Author: lizhouwei* @CreateDate ...

  7. 《程序员代码面试指南》第二章 链表问题 删除无序链表中值重复的链表

    样例 998 998 998 999 999 999 1000 1000 1000 删除后为998 999 1000 java代码 /*** @Description:删除无序链表中值重复的链表* @ ...

  8. 《程序员代码面试指南》第五章 字符串问题 拼接所有字符串产生字典顺序最小的大写字符串...

    题目 拼接所有字符串产生字典顺序最小的大写字符串 java代码 努力中.... 转载于:https://www.cnblogs.com/lizhouwei/p/8955158.html

  9. 《程序员代码面试指南》第七章 位运算 在其他数都出现k 次的数组中找到只出现一次的数...

    题目 在其他数都出现k 次的数组中找到只出现一次的数 java 代码 package com.lizhouwei.chapter7;/*** @Description: 在其他数都出现k 次的数组中找 ...

最新文章

  1. R语言Goldfeld-Quandt检验实战:检验回归模型中是否存在异方差性(heteroscedasticity)、发生了异常差(heteroscedasticity)问题如何解决
  2. C++报错解决:what(): basic_string::_S_construct null not valid
  3. 【阿里云课程】深度生成模型基础,自编码器与变分自编码器
  4. BugkuCTF-Misc:想蹭网先解开密码
  5. 用nagios监控ORACLE服务器
  6. java反射教程_Java反射教程
  7. vertical-align属性详解
  8. 论文浅尝 - CIKM2020 | Relation Reflection Entity Alignment
  9. 一张图学会python3高清图-一张图理清 Python3 所有知识点
  10. ubuntu16.04中创建新用户
  11. Python学习笔记(六)——查询天气脚本
  12. C#之浅析面向对象编程思想(二)
  13. Android Jetpack组件之Room数据库使用
  14. Linux tac命令
  15. 京东1.8联合会员腾讯视频QQ音乐转手教程 京东app换绑
  16. 如何利用excel和python构建拟合曲线预测可转债股票价格?
  17. Java批量修改文件名
  18. unlikely和likely的使用
  19. 2021年江苏省高考成绩排名查询,2021年江苏高考分数一分一段位次表,江苏高考个人成绩排名查询方法...
  20. 人工智能会被黑客攻击?

热门文章

  1. 马士兵java note 5
  2. proxool数据库连接池用法
  3. MongoDB numa系列问题一:[initandlisten] connection refused because too many open connections:
  4. Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
  5. DSP/BIOS实时操作系统中PIP对象多任务间传递数据示例程序
  6. 执行 pip3 install selenium 时出现 fail to create process
  7. 线段覆盖加强版(快速+贪心)
  8. centeros php pgsql,centos php添加pgsql扩展
  9. 服务器看端口信息命令行,查看服务器进入端口命令行
  10. gulp html 模块化,使用Gulp如何实现静态网页模块化具体怎么做?