自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

得一

记录我的学习过程,保证全是干货。欢迎关注公众号Java白痴,一起从基础学习进步。

  • 博客(15)
  • 收藏
  • 关注

原创 【LeetCode】232-用栈实现队列

用栈实现队列题目使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false说明:你只能使用

2020-06-02 23:51:12 153

原创 【LeetCode】912-排序数组

排序数组题目给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000基本概念稳定性如果待排序数组中两个相等的值,在排序后相对位置不对,我们就说这种排序算法是稳定的排序算法。反之,则不是一种稳定

2020-06-02 00:17:32 299

原创 【LeetCode】206-反转链表(图解说明)

反转一个单链表题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解法1:迭代法解题思路迭代法的解题思路并不复杂,遍历链表,将 next 节点取出,使之成为头节点,以此循环,知道 next 节点为 null。这种反转链表的运用在很多题目中都会用到,比如判断是否回文链表时,将链表的前半部分反转,

2020-06-02 00:16:06 271

原创 【LeetCode】104-二叉树的最大深度

二叉树的最大深度题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7](示例图已省略,可点击顶部标题查看原题),返回它的最大深度 3 。解法1:迭代法解题思路迭代法的实现和层序遍历相似,每遍历完一层,深度+1,当遍历完成时便可得到最大...

2020-02-17 00:00:25 157

原创 【LeetCode】101-对称二叉树

对称二叉树题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的,但是这个 [1,2,2,null,3,null,3] 则不是镜像对称的。(示例图已省略,可点击顶部标题查看原题)说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。解法1:迭代法解题思路迭代法的实现和层序遍历相似,只不过每次从队列中取出...

2020-02-15 16:14:57 101

原创 【LeetCode】160-相交链表

相交链表题目编写一个程序,找到两个单链表相交的起始节点。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从...

2020-01-17 00:02:39 82

原创 【LeetCode】21-合并两个有序链表

合并两个有序链表题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解法1:迭代法解题思路需要注意的是,题目给的两个链表都是有序链表,因此同时遍历两个链表,逐一比较即可。当其中一个链表遍历完成时,...

2020-01-17 00:01:50 76

原创 【LeetCode】237-删除链表中的节点

删除链表中的节点题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5...

2020-01-17 00:01:06 93

原创 【LeetCode】142-环形链表II(含推理过程)

环形链表II题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node ...

2020-01-14 00:59:58 114

原创 【LeetCode】141-环形链表

环形链表题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:true解...

2020-01-13 01:34:24 92

原创 详解 HashMap 中的 hash 函数

hash 函数,即散列函数,或叫哈希函数。它可以将不定长的输入转变成定长的输出。在 Java 的 HashMap 中,是如何利用 hash 函数来计算 index 的,又是如何解决冲突的问题?本文将为你一一介绍。

2018-10-10 23:02:39 24382 2

原创 Java学习笔记 - Java中的编译和反编译

一、 什么是编程语言(Programming Language)低级语言(Low-level Language):直接用计算机指令编写程序。如机器语言(Machine Language)、汇编语言(Assembly Language)。高级语言(High-level Language):用语句编写程序,语句是计算机程序的抽象表示。如C、C++、Java等。二、 什么是编译(C...

2018-08-17 13:27:05 941

原创 Scrapy学习——CrawlSpider详解

  首先,说是详解,其实也并不是多么深入,只是自己的一些学习笔记。其次,本文适合一边翻源码,一边阅读。  从CrawlSpider的源码(crawl.py)中我们可以看到,CrawlSpider是继承Spider类的。在scrapy的官方文档中对Spider的描述如下:以初始的URL初始化Request,并设置回调函数。 当该request下载完毕并返回时,将生成response...

2018-07-28 15:36:13 2173

原创 20180704-如果你已将某个类的实例序列化到磁盘,这时候再往这个类添加新的属性,那么反序列化该对象时会发生什么?

只要在类中定义了SerializableUID,在类中新增属性不会导致序列化失败,新增的字段在反序列化时失败,新增的字段将被初始化为初始值,如String将被初始化为null,int将被初始化0。...

2018-07-08 10:36:33 1637 1

原创 2018026-Java中如何实现序列化和反序列化

概念 序列化:将对象序列化成字节数组。 反序列化:将字节数组反序列化成对象。

2018-06-27 12:44:02 1691

空空如也

空空如也

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

TA关注的人

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