剑指offer刷题笔记】的更多相关文章

删除链表中重复的结点:较难 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 public class Solution { public ListNode deleteDuplication(ListNode pHead) { if(pHead==null||pHead.next==null)return pHead; ListNod…
开篇 二刷剑指offer了,本来用Tyora记的笔记,发现字数到四万了就变得好卡o(╥﹏╥)o,刚好开始写博客,就转过来吧,记下来子自己看.不废话,开刷... JZ26. 树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3 / \ 4 5 / \ 1 2 给定的树 B: 4 / 1 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值. 限制: 0 <=…
1.面试题43. 1-n整数中1出现的次数 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. 这个题目的核心思想是考虑:每个位是任意数字时,可以包含多少个这个位为1的数字 分了三种情况 class Solution { public int countDigitOne(int n) { //digit表示位因子,就是10.100.1000... long digit=1; int cou…
二维数组中的查找: 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 两种思路各有优势: 1.行枚举列二分O(nlogm)(列二分行枚举O(mlogn)) 2.从左下角或右上角移动O(m+n) 如果n,m一个特别大一个特别小选择方案1效率很高 其他情况选择第2中方案   替换空格: 题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We A…
LeetCode过程中值得反思的细节 以下题号均指LeetCode剑指offer题库中的题号 本文章将每周定期更新,当内容达到10题左右时将会开下一节. 二维数组越界问题04 public static void main(String[] args) { int[][]x = {{}}; System.out.println(x.length+" "+x[0].length); int[][]y = {{1}}; System.out.println(y.length+"…
面试题3 -- 搜索二维矩阵 写出一个高效的算法来搜索 m × n矩阵中的值. 这个矩阵具有以下特性: 1. 每行中的整数从左到右是排序的. 2. 每行的第一个数大于上一行的最后一个整数. public class Solution { /** * @param matrix, a list of lists of integers * @param target, an integer * @return a boolean, indicate whether matrix contains…
目录 二维数组中的查找 替换空格 从尾到头打印链表 反转链表 重建二叉树 用两个栈实现队列 旋转数组的最小数字 斐波拉切数列 跳台阶 变态跳台阶 矩形覆盖 二进制中1的个数 数值的整次方 链表中倒数第k个结点 合并两个排序的链表 调整数组顺序使奇数位于偶数前 树的子结构 二叉树的镜像 求\(1+2+--n\) 使用递归 利用构造函数 虚函数 不用加减乘除做加法 顺时针打印矩阵 包含min函数的栈 栈的压入.弹出序列 从上往下打印二叉树 二叉搜索树的后序遍历序列 数组中的逆序对 两个链表的第一个公…
★ 二维数组的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 找规律题, 只要从左下角或右上角出发,就可以一步步缩小范围, 比目标值小就向右/下,比目标值大就向左/上 替换空格 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 重点在于创…
排序 035-数组中的逆序对(归并排序) 题目描述 题解 代码 复杂度 029-最小的K个数(堆排序) 题目描述 题解 代码 复杂度 029-最小的K个数(快速排序) 题目描述 题解 代码 复杂度 位运算 011-二进制中1的个数 题目描述 题解 代码 复杂度 012-数值的整数次方 题目描述 题解 代码 复杂度 040-数组中只出现一次的数字 题目描述 题解 代码 复杂度 其他算法 题目描述 题解 代码 复杂度 002-替换空格 题目描述 题解 代码 复杂度 013-调整数组顺序使奇数位于偶数…
斐波那契数列 007-斐波拉契数列 题目描述 题解 代码 复杂度 008-跳台阶 题目描述 题解 代码 复杂度 009-变态跳台阶 题目描述 题解 代码 复杂度 010-矩形覆盖 题目描述 题解 代码 复杂度 搜索算法 001-二维数组查找 题目描述 题解 代码 复杂度 006-旋转数组的最小数字(二分查找) 题目描述 题解 代码 复杂度 037-数字在排序数组中出现的次数(二分查找) 题目描述 题解 代码 复杂度 全排列 027-字符串的排列动态规划 题目描述 题解 代码 复杂度 030-连续…