liuwenzi Blog

人生不易,何必白白走这么一遭

笔记检索

笔记整理

笔记整理 Java基础 Java中hashCode()和equals()使用 Threadlocal原理浅析 剑指offer 替换字符串中的空格 从尾到头打印链表 二维数组中的查找 不修改数组找出重复的数字 寻找数组中的重复数字 算法 二叉树morris遍历 生活 走过的路,明的理 终于搭完了博客...

剑指offer 利用两个栈实现一个队列

剑指offer60天计划

利用两个栈实现一个队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 题解 一个栈负责del,一个栈负责接收push的值。 当del的时候,如d...

剑指offer 二叉树的下一个节点

剑指offer60天计划

二叉树的下一个节点 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 题解 分为三种情况 当前节点有右子树 找到当前节点的右子树中的最左节点 当前节点没有右子树并且是其父节...

剑指offer 面试题7 重建二叉树

剑指offer60天计划

重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 1 2 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 题解 递归 前序遍历的第一个节点就是根节点,在中序遍历中根节...

剑指offer 从尾到头打印链表

剑指offer60天计划

从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 题解 翻转链表(在可修改输入的情况下,面试时需要问面试官是否可以修改输入) 将链表翻转,然后逐个打印出来 空间复杂度:O(n) 时间复杂度:O...

java深拷贝浅拷贝

Java基础

java深拷贝浅拷贝 [TOC] 每个技术都有其产生的理由,为什么需要拷贝呢?如何实现拷贝?深拷贝和浅拷贝的区别?如何解决多层克隆问题? 拷贝和赋值的区别 赋值变量复制的是引用,即对象在内存中的地址,a,b对象指向了同一个对象。此时a == b 1 2 Object a = new Object(); Object...

剑指offer 替换空格

剑指offer60天计划

替换空格 请实现一个函数,把字符串 s 中的每个空格替换成”%20”。 示例 1: 1 2 输入:s = "We are happy." 输出:"We%20are%20happy." 题解 用st ringbuffer,将字符串从前往后扫描,遇到空格则将“%20”加上,否则直接加上扫描到的字符 ...

java中hashCode()和equals()使用

Java基础

java中hashCode()和equals()使用 equals()的作用 hashCode的作用 什么时候需要覆盖hashCode() equals() equals()用来判断两个对象是否相等 默认情况下通过判断两个对象地址是否相等(即是否是同一个对象,与=...

Threadlocal原理浅析

layout: post title: “ThreadLocal使用与原理” subtitle: “Java基础” date: 2020-07-22 author: “liuwenzi” tags: - Java基础 — ThreadLocal使用与原理 1 2 3 4 5 6 7 8 9 10 ThreadLoca...

剑指offer 二维数组中的查找

剑指offer60天计划

二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。   题解 遍历二维数组 空间复杂度O(1) 时间复杂度O(n) 利用每一行从左到右递增,每一列从...