Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
剑指offer 学习笔记 二叉树的深度
面试题55 二叉树的深度 1 输入一棵二叉树 求该树的深度 只需遍历整棵树的每一条路径找出最长的即可 以下代码中的树结构为 include
剑指offer(第二版)
剑指offer 学习笔记 最长不含重复字符的子字符串
面试题48 最长不含重复字符的子字符串 请从字符串中找出一个最长的不包含重复字符的子字符串 计算该最长子字符串的长度 假设字符只包含 a z 的字符 如在字符串 arabcacfr 中 最长的不含重复字符的子字符串是 acfr 长度为4 我
剑指offer(第二版)
剑指offer 学习笔记 复杂链表的复制
分治法 把分解后的小问题各个解决 然后把小问题的解决方案结合起来解决大问题 面试题35 复杂链表的复制 请实现函数ComplexListNode Clone ComplexListNode pHead 复制一个复杂链表 在复杂链表中 每个节
剑指offer(第二版)
剑指offer 学习笔记 连续子数组的最大和
面试题42 连续子数组的最大和 输入一个整型数组 数组里有正数也有负数 数组中的一个或连续多个整数组成一个子数组 求子数组中数字的和的最大值 要求时间复杂度为O n 直观解法是枚举数组中所有子数组并求出它们的和 一个长度为n的数组 总共有n
剑指offer(第二版)
剑指offer 学习笔记 把字符串转换成整数
面试题67 把字符串转换成整数 类似atoi函数 把一个字符串转换成一个整数 当输入非法时返回0 为了区分是由于输入0而返回0还是输入非法而返回0 而声明了一个全局变量g nStatus 为了防止溢出 可先将结果存入long long类型中
剑指offer(第二版)
剑指offer 学习笔记 树中两个节点的最低公共祖先
面试题68 树中两个节点的最低公共祖先 可以先得到从根节点到这两个节点的路径 之后找出最后一个公共节点 代码中的树为 include
剑指offer(第二版)
剑指offer 学习笔记 二叉搜索树的后序遍历序列
面试题33 二叉搜索树的后序遍历序列 输入一个整数数组 判断该数组是不是某二叉搜索树的后序遍历结果 只要存在一个二叉搜索树的后序遍历结果为它即可 如果是返回true 不是返回false 假设输入数组的任意两个数字都不相同 后序遍历得到的序列
剑指offer(第二版)
剑指offer 学习笔记 构建乘积数组
面试题66 构建乘积数组 给定一个数组A n 请构建一个数组B n 其中B i A 0 xA 1 x xA i 1 xA i 1 x xA n 1 不能使用除法 如没有不能使用除法的限制 可以用A中所有元素的乘积除A i 来得到B i 此时
剑指offer(第二版)
剑指offer 学习笔记 礼物的最大价值
面试题47 礼物的最大价值 在一个mxn的棋盘的每一格都放有一个礼物 每个礼物都有一定的价值 价值大于0 你从棋盘的左上角开始拿格子里的礼物 并每次向右或者向下移动一格 直到到达棋盘的右下角 给定一个棋盘和上面的礼物 请计算你最多能拿到多少
剑指offer(第二版)
剑指offer 学习笔记 字符串的排列
面试题38 字符串的排列 输入一个字符串 打印出该字符串中字符的所有排列 如输入abc 则输出六个不同的全排列 我们可以把求排列的过程分为两步 第一步求可能出现在第一个位置的字符 即把第一个字符和后面所有的字符交换 第二步固定一个字符 求后
剑指offer(第二版)
剑指offer 学习笔记 数组中数字出现的次数
面试题56 数组中数字出现的次数 1 一个整型数组里除两个数字之外 其他数字都出现了两次 找出这两个只出现一次的数字 要求时间复杂度O n 空间复杂度O 1 先分析如果只有一个数字出现一次 而其他数字都出现了两次 我们就可以依次异或数组中的
剑指offer(第二版)
剑指offer 学习笔记 圆圈中最后剩下的数字
面试题62 圆圈中最后剩下的数字 0 1 n 1这n个数字排成一个圆圈 从数字0开始 每次从这个圆圈里删除第m个数字 求出这个圆圈里剩下的最后一个数字 本题就是约瑟夫环问题 法一 用环形链表模拟圆圈 我们可以直接用标准库的list模拟环形链
剑指offer(第二版)
剑指offer 学习笔记 二叉搜索树的第K大节点
面试题54 二叉搜索树的第K大节点 给定一棵二叉搜索树 找出其中第K大的节点 该题问法有问题 应该问从小到大第K个节点值为多少 这样才是书上代码的含义 即中序遍历到第K个元素 以下代码以下图二叉搜索树为例 include
剑指offer(第二版)