#剑指offer题解
迪迦奥特曼丶也熬不动了
本人非科班,自学编程,在了解这个猿类生物中深知数据结构和算法的重要性,主要分享在学习过程中的算法。希望在这痛并快乐的学习中得到大家支持。
程序=数据结构 算法!!
展开
-
剑指Offer35-38题解
/** * https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof/ * * @author Qitong!! * @Date 2020/7/5 */public class 剑指Offer_35_复杂链表的复制 { //利用 HashMap 时间 O(N) 空间 O(N) public Node copyRandomList(Node head) { if (head == null) re原创 2020-07-24 12:59:19 · 1017 阅读 · 0 评论 -
剑指Offer32-34题解
/** * https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/ * * @author Qitong!! * @Date 2020/7/4 */public class 剑指Offer_32_I_从上到下打印二叉树 { //二叉树的层序遍历 public int[] levelOrder(TreeNode root) { if (root == null) retu原创 2020-07-24 12:54:34 · 1028 阅读 · 0 评论 -
27-31
剑指Offer_27_二叉树的镜像/** * https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/ * * @author Qitong!! * @Date 2020/7/3 */public class 剑指Offer_27_二叉树的镜像 { public TreeNode mirrorTree(TreeNode root) { if (root == null) return null;原创 2020-07-24 12:51:08 · 970 阅读 · 0 评论 -
环链表入口_翻转链表_合并有序链表_树的子结构
23剑指Offer_23_链表中环的入口结点/** * https://leetcode-cn.com/problems/linked-list-cycle-ii/ * * @author Qitong!! * @Date 2020/7/22 */public class 剑指Offer_23_链表中环的入口结点 { public ListNode detectCycle(ListNode head) { if (head == null || head.next原创 2020-07-24 12:36:26 · 875 阅读 · 0 评论 -
剑指Offer20_表示数值的字符串
20 表示数值的字符串[] : 字符集合() : 分组? : 重复 0 ~ 1 次+ : 重复 1 ~ n 次* : 重复 0 ~ n 次. : 任意字符\. : 转义后的 .\d : 数字"[+-]?\\d* (\\.\\d+)?([eE][+-]?\\d+)" 错误的,空格也算一个字符别随便打空格"[+-]?\\d*(\\.\\d+)?([eE][+-]?\\d+)?"public boolean judge(String str) { if (str原创 2020-07-24 12:25:05 · 911 阅读 · 0 评论 -
剑指Offer19_正则表达式匹配
19 正则表达式匹配未完成√难题[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bhvr72kY-1595564394672)(剑指offer题解.assets/正则.png)]public class 剑指Offer_19_正则表达式匹配 { public boolean isMatch(String s, String p) { //动态规划 画图!!!和最小编辑距离类似 int sl = s.length();原创 2020-07-24 12:22:08 · 559 阅读 · 0 评论 -
剑指Offer16_数值的整数次方(快速幂及拓展)
base=0,exponent<0是非法输入,给用户提示输入错误提高运算效率:public class 剑指Offer_16_数值的整数次方 { //递归!! 分治的思想! 时间O(logN) 空间 O(logN) public double myPow(double x, int n) { //确定递归基! if (n == 0) return 1; if (n == -1) return 1 / x; ...原创 2020-07-24 12:16:33 · 4056 阅读 · 0 评论 -
剑指Offer13_机器人的运动范围
public class 剑指Offer_13_机器人的运动范围 { private int m; private int n; private int k; private int count; private boolean[][] mark; private int[][] matrix; public int movingCount(int m, int n, int k) { this.m = m; thi.原创 2020-07-24 12:08:51 · 545 阅读 · 0 评论 -
剑指Offer_8二叉树的下一个结点
8 二叉树的下一个节点分三种情况:当前节点有右子树,下一个节点是右子树中最左的节点无右子树父节点的左孩子是当前节点,下一个节点是父节点遍历该节点的父节点,直到父节点的左孩子是当前节点,下一个节点是父节点向上一直找,返现node结点的父节点为null,说明无后继结点了public class P08FindBinaryTreeNextNode { private static class TreeNode { int val; TreeN原创 2020-07-24 12:04:17 · 498 阅读 · 0 评论 -
剑指Offer_22_链表中倒数第k个节点
package 二刷;import 二刷.common.ListNode;/** * https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ * * @author Qitong!! * @Date 2020/7/2 */public class 剑指Offer_22_链表中倒数第k个节点 { public ListNode getKthFromEnd(ListNode head原创 2020-07-19 18:59:08 · 512 阅读 · 0 评论 -
剑指Offer_21_调整数组顺序使奇数位于偶数前面
package 二刷;/** * https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/ * * @author Qitong!! * @Date 2020/7/2 */public class 剑指Offer_21_调整数组顺序使奇数位于偶数前面 { public int[] exchange(int[] nums) { /原创 2020-07-19 18:57:13 · 394 阅读 · 0 评论 -
剑指Offer_18_删除链表的节点
package 二刷;import 二刷.common.ListNode;/** * https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/ * * @author Qitong!! * @Date 2020/7/1 */public class 剑指Offer_18_删除链表的节点 { public ListNode deleteNode(ListNode head, int val) {原创 2020-07-19 18:53:12 · 490 阅读 · 0 评论 -
剑指Offer_17_打印从1到最大的n位数
package 二刷;import java.util.ArrayList;import java.util.List;/** * https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/ * * @author Qitong!! * @Date 2020/7/1 */public class 剑指Offer_17_打印从1到最大的n位数 { private List<String原创 2020-07-19 18:51:10 · 447 阅读 · 0 评论 -
剑指Offer_15_二进制中1的个数
package 二刷;/** * https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_15_二进制中1的个数 { public int hammingWeight(int n) { int res = 0; while (n != 0) {原创 2020-07-19 18:46:29 · 418 阅读 · 0 评论 -
剑指Offer_14_I剪绳子
package 二刷;/** * https://leetcode-cn.com/problems/jian-sheng-zi-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_14_I剪绳子 { //用 贪心做 public int cuttingRope(int n) { if (n < 4) return n - 1; //3的次数!原创 2020-07-19 18:45:01 · 501 阅读 · 0 评论 -
剑指Offer_12_矩阵中的路径
package 二刷;/** * https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_12_矩阵中的路径 { private char[][] board; private char[] words; private boolean[][] flag; publ原创 2020-07-19 18:41:03 · 461 阅读 · 0 评论 -
剑指Offer_11_旋转数组的最小数字
package 二刷;/** * https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_11_旋转数组的最小数字 { public int minArray(int[] numbers) { if (numbers == null || number原创 2020-07-19 18:39:23 · 444 阅读 · 0 评论 -
剑指Offer_10_I_斐波那契数列和青蛙跳台阶问题
package 二刷;/** * https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_10_I_斐波那契数列 { //考虑越界问题!!!! //递归! 时间O(2^n) public int fib(int n) { if (n == 0) return 0;原创 2020-07-19 18:37:14 · 445 阅读 · 0 评论 -
剑指Offer_09_用两个栈实现队列
package 二刷;import java.util.Stack;/** * https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/ * * @author Qitong!! * @Date 2020/7/18 */public class 剑指Offer_09_用两个栈实现队列 {}class CQueue { private Stack<Integer> inSt原创 2020-07-19 18:35:06 · 435 阅读 · 0 评论 -
剑指Offer_07_重建二叉树
package 二刷;import 二刷.common.TreeNode;/** * https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_07_重建二叉树 { public TreeNode buildTree(int[] preorder, int[] inorder) {原创 2020-07-19 18:31:38 · 493 阅读 · 0 评论 -
剑指Offer_06_从尾到头打印链表
package 二刷;import 二刷.common.ListNode;import java.util.ArrayList;import java.util.Stack;/** * https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_06_从尾到头打印链表 {原创 2020-07-19 18:29:48 · 452 阅读 · 0 评论 -
剑指Offer_05_替换空格
package 二刷;/** * https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_05_替换空格 { //调用系统自带的函数 时间特别长!不好 public String replaceSpace(String s) { if (s == null) return null;原创 2020-07-19 18:27:43 · 465 阅读 · 0 评论 -
剑指Offer_04_二维数组中的查找
package 二刷;/** * https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_04_二维数组中的查找 { public boolean findNumberIn2DArray(int[][] matrix, int target) { if (mat原创 2020-07-19 18:24:11 · 470 阅读 · 0 评论 -
剑指Offer_03_数组中重复的数字
package 二刷;import java.util.HashSet;import java.util.Set;/** * https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/ * * @author Qitong!! * @Date 2020/6/30 */public class 剑指Offer_03_数组中重复的数字 { //利用 HashSet 时间O(N) 空间O(N)原创 2020-07-19 18:23:08 · 484 阅读 · 0 评论 -
实现单例模式(Java版)!
public class _02_实现单例模式 }//单例枚举模式,天然防止反射破坏!enum Enum { INSTANCE; public Enum getInstance() { return INSTANCE; }}//恶汉式class Hungry { private static Hungry instance = new Hungry(); private Hungry() { } public原创 2020-07-19 18:20:49 · 532 阅读 · 0 评论 -
剑指offer题解12-16
剑指offer题解12 矩阵中的路径public boolean hasPath(char[] matrix, int rows, int cols, char[] str) { if (matrix == null || str == null || rows <= 0 || cols <= 0) { return false; } /...原创 2020-03-12 11:50:42 · 518 阅读 · 0 评论 -
剑指offer题解7-11!!(Java)
剑指offer题解7 重建二叉树根据前序和中序遍历,可以确定每颗子树根节点所在的位置,然后根据根节点,划分左右子树,之后再分别在左右子树中重复之前的划分过程。(递归实现) private static class TreeNode { int val; TreeNode left; TreeNode right; pub...原创 2020-02-18 13:05:30 · 563 阅读 · 0 评论 -
剑指offer1-6题解(java)
剑指offer题解2 实现Singleton模式题目: 设计一个类,我们只能生成该类的一个实例饿汉式,懒汉式,DCL懒汉式,静态内部类,枚举建议的方法://枚举,天然一个对象,最佳完美,不用担心反射public enum Singleton{ INSTANCE; public Singleton getInstance(){ return ...原创 2020-02-18 12:57:10 · 535 阅读 · 0 评论