自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Eamon

Focus on yourself and conquer yourself.

  • 博客(45)
  • 问答 (2)
  • 收藏
  • 关注

原创 【文学】平凡的世界第三部

命运总是不如人愿。但往往是在无数的痛苦中,在重重的矛盾和艰辛中,才使人成熟起来。 纵观《平凡的世界》三部曲,第一部介绍了人物性格和故事背景,主要描述了在“集体”环境下农村的生活状态,通过人物的思想和组织的活动可以让人了解一些当时的社会状态;第二部,社会在进步放开了农民的手脚,在新时代下城乡生活发生了翻天覆地的变化;第三部,在大变化之中有好的事情,也有坏的事情,命运难以捉...

2020-04-22 17:57:12 1711

原创 【文学】平凡的世界第二部

今天周日,可仔细一回想。竟不清楚本周到底做了哪些事,浑浑噩噩过去了一周。过去还在做记录,每天干了些什么,现在又懈怠了。而今从4.20号起,再重新记录。当时是为什么没有继续下去,我在一天安排好了接下来几个月要做的事情,每天要做些什么都写的仔仔细细。不到三天因为客观原因,因为自身的懒,将计划给打乱,后来就索性的放弃治疗。。计划还是应该要制订,有了计划才会有个方向,每天记录这样方便于自己...

2020-04-20 11:09:32 1213

原创 【剑指offer】32.从上到下打印二叉树,输出一行数组/逐层打印/之字形打印

打印二叉树输出数组题目描述代码实现逐层打印题目描述代码实现之字形打印题目描述代码实现输出数组题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]代码实现import java...

2020-04-15 16:38:34 189

原创 【剑指offer】31.栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2...

2020-04-15 16:22:06 96

原创 【剑指offer】28.对称的二叉树

题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1   / \  2   2 / \ / \3  4 4  3但是下面这个 [1,2,2,null,3,null,3] 则不是...

2020-04-15 16:10:19 109

原创 【剑指offer】27.二叉树的镜像

请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4   /   \  2     7 / \   / \1   3 6   9镜像输出: 4   /   \  7     2 /...

2020-04-15 14:41:20 171

原创 【剑指offer】26.树的子结构

题目描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3    / \   4   5  / \ 1   2给定的树 B: 4   / 1...

2020-04-15 14:35:15 95

原创 【剑指offer】25.合并两个排序的链表

题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路代码这道题将链表和归并结合一起考察,关于【归并排序】代码实现:public class Offer25_MergeTwoLists { public L...

2020-04-15 09:46:45 71

原创 【剑指offer】22.链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.思路代码假设链表有n个节...

2020-04-15 09:40:39 111

原创 假努力

人把自己置身于忙碌当中,有一种麻木的踏实感,但丧失了真实。你的青春也不过只有这些日子。什么是真实?你做什么,和谁在一起,你看到什么,听到什么,有一种从心灵深处满溢出来的不懊悔也不羞耻的平和和喜悦。...

2020-04-14 10:53:29 511

原创 【剑指offer】20.表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、“0123"及”-1E-16"都表示数值,但"12e"、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。思路实现public class Offer20_IsNumber { public boolean isNumber(...

2020-04-11 16:14:01 183

原创 【剑指offer】19.正则表达式匹配

题目描述请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "...

2020-04-11 16:12:25 99

原创 【剑指offer】18.删除链表的结点

题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: hea...

2020-04-11 16:09:43 186

原创 【剑指offer】17.打印从1到最大的n位数

题目描述输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]代码实现public class Offer17_PrintNumbers { public int[] printNumbers(int n) { i...

2020-04-11 16:07:10 141

原创 【剑指offer】16.数值的整数次方

题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2的-...

2020-04-11 16:04:21 124

原创 【剑指offer】15.二进制中1的个数

题目描述请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。...

2020-04-11 10:58:28 95

原创 【剑指offer】14.剪绳子

题目描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 ...

2020-04-11 10:54:45 154

原创 【剑指offer】13.机器人运动范围

题目描述地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能...

2020-04-11 10:36:55 85

原创 【剑指offer】12.矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCE...

2020-04-08 21:43:55 113

转载 【剑指offer】11.旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0代码实现public int minArray(int[]...

2020-04-08 15:20:57 100

原创 【剑指offer】10.斐波那契数列(青蛙跳台阶)

斐波那契数列题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0,   F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000...

2020-04-08 11:26:40 353

原创 【剑指offer】9.用两个栈实现队列(用两个队列实现栈)

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。实现:public class Offer9_1StackToQueue { import java.util.Stack; Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer&...

2020-04-08 10:36:27 73

原创 【剑指offer】7.重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7思路前序数组:根左右中序数组:...

2020-04-08 09:30:41 91

原创 哈夫曼树与哈夫曼编码

Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树。引入如果有一篇文章,由若干个字符构成。每个ABC…Z都由7位编码,文章有1w个字符,那么有7w位进行编码。一个字节8位,首位是0。需要占用1W个字节。实际中每个单词的出现频率是不同的,比如e在文章中出现频率较高,我用5位给它编码,出现频率较低的使用7位、8位或者9位。这样效率会得到提高。看一个具体的例子:将百分制的成绩...

2020-04-07 17:59:55 3596

原创 【贪心策略】字典序拼接字符串,切割金条,代价利润,数据流中的中位数,会议室宣讲

贪心策略1.字典序拼接字符串题目描述思路代码实现2.切割金条问题题目描述思路代码实现3.代价利润问题题目描述思路代码实现4.数据流中的中位数5.会议室宣讲题目描述思路实现1.字典序拼接字符串题目描述字符串数组,将各字符串拼接,使得最低词典顺序。如:“ab”,“cd”,“ef”,拼接成“abcdef”最小,其他方式都比它大。思路到这里可能想到排序,再拼接,有一种情况是,“b”和“ba”拼接...

2020-04-07 15:24:49 718

原创 【剑指offer】41.数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5思路构建最大堆,最小堆。最小堆是从小到大排序,最大堆是从大到小排序。最小堆中每个数都大于等于最大堆...

2020-04-07 15:14:32 495

原创 【重点】前缀树

思路每个结点有三个属性值记录有多少个字符经过这个节点记录有多少个字符串以当前节点结束每个节点的路径功能插入将字符串转换为char数组,挨个插入查找怎么插入,怎么查找。返回以当前节点结束的数量删除首先判断是否存在(进行查找)在删除到某个节点的时候,经过这个节点数量为0的时候。后面可以不考虑,直接断开前缀数量和查找类似,返回经过这个节点的数量...

2020-04-07 10:56:50 676

原创 LeetCode200.岛屿数量dfs/bfs/并查集 java

题目描述给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3思路实现...

2020-04-07 00:10:18 602

原创 并查集原理及实现--最通俗易懂解释

江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”,只要是能通过朋友关系串联起来的,不管拐了多少个弯,都认为是自己人。这样一来,江湖上就形成了一个一个的帮派,通过两两之间的朋友关系串联起来。而不在同一个帮派的人,无论如何都无法通过...

2020-04-06 23:33:16 721

原创 Java二进制-补码,左移,右移,无符号右移

一、二进制二进制的最高位是符号位(整数是0,负数是1)Java中没有无符号数计算机以整数的补码进行计算原码:将一个整数转换为二进制以int类型为例,int类型在Java中是4个字节,32位例如:2 的原码:00000000 00000000 00000000 00000010-2的原码:10000000 00000000 00000000 00000010反码正数的...

2020-04-04 21:07:33 1667

转载 一致性哈希

前言伴随着系统流量的增大,出现了应用集群。在 Redis 中为了保证 Redis 的高可用也为 Redis 搭建了集群对数据进行分槽存放。在 Mysql数据库要存储的量达到一个很高的地步的时候,我们会对数据库进行分库分表操作。OK,到这儿先假设我们不知道什么是集群、什么是分库分表,我们先来看一个数据库水平切分演变的例子:假设我们的系统中有一张会员表 customer_info,我们的系统刚开...

2020-04-04 01:10:37 715

原创 布隆过滤器的原理、使用场景、注意事项以及bitMap实现

什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。实现原理hashMap的问题判断一个文件中是否存在某个元...

2020-04-03 20:37:23 739

原创 【文学】平凡的世界第一部

第一卷·十九章  润叶敢于突破世俗的束缚,想要和少安在一起。少安因为双方家庭的因素,爱又不敢答应和润叶在一起。两个人当前都十分痛苦,润叶在被逼迫着嫁给向前,少安是家里的顶梁柱要支撑烂光景的家。少安甚至没有见润叶的勇气“我可以开心地吃馒头,对未来充满希望。但我不能带你一起吃馒头”。  少安认为自己配不上润叶,他不知道润叶为了他要拒绝家庭条件优越,还夹带着自己二爸家的感情债,的向前。少安是自卑的,...

2020-04-03 20:01:08 787

原创 【高频】二叉树的层次遍历BFS和深度遍历DFS

题目描述对二叉树的层次遍历和深度遍历实现思路层次遍历借助队列 LinkedList深度遍历借用栈 Stackimport java.util.*;public class BFSAndDFS { public class TreeNode { int val; TreeNode left; TreeNode right; ...

2020-04-02 10:52:49 665

原创 【重点】求一棵完全二叉树的节点个数

题目描述已知一棵完全二叉树,求其节点的个数要求:时间复杂度低于O(N),N为这棵树的节点个数实现思路若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。首先判断根节点的右子树的左边界。左子树的左边界在最后一层。说明此时根的左子树为满二叉树所有节点数 = 左子树 + 根节点 + 右子...

2020-04-02 10:31:06 1056

原创 【高频】判断一棵二叉树是否为二叉搜索树BST和完全二叉树CBT

题目描述判断一棵二叉树是否为二叉搜索树,完全二叉树实现思路public static class Node { int val; Node left; Node right; public Node(int data) { this.val = data; }}二叉搜索树二叉搜索树是一棵空树,或者是具有下列性质的二叉树: 若...

2020-04-02 09:57:01 886

原创 【高频】判断一棵二叉树是否为平衡二叉树

题目描述判断一棵二叉树是否为平衡二叉树实现思路平衡二叉树是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。抓住两个点:左右子树也是平衡二叉树(想到递归)左右子树高度差不超过1public class IsBalanceOfTree { public static class Node { int val; ...

2020-04-02 09:07:08 534

原创 【剑指offer】37.序列化和反序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树实现import java.util.LinkedList;import java.util.Objects;import java.util.Queue;public class SerilizeAndReconstructTree { public static class Node{ int val...

2020-04-01 23:59:25 794

原创 【剑指offer】8.二叉树的下一个节点

题目描述给定一个二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右孩子的指针,还有一个指向父节点的指针public class Node { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode parent = null;...

2020-04-01 23:40:14 79

原创 二叉树的先中后序遍历递归和非递归

题目描述实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式实现递归方式public static class Node { int val; Node left; Node right; public Node(int data) { this.val = data; }}// 前序递归public static ...

2020-04-01 23:18:13 576

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除