自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

尽人事,听天命

每一个不曾起舞的夜晚,都是对生命的辜负

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

原创 弗兰西刷题日记-剑指offer-41-数据流的中位数

利用一个大顶堆(存储左半边元素)和一个小顶堆(存储右半边元素) import java.util.*; class MedianFinder { /** initialize your data structure here. */ PriorityQueue<Integer> maxHeap; PriorityQueue<Integer> minHeap; public MedianFinder() { maxHeap =

2020-10-17 21:23:21 77

原创 弗兰西刷题日记-剑指offer-40-最小的k个数

解法一:构造最大堆(堆顶元素是堆中元素最大值) import java.util.*; class Solution { public int[] getLeastNumbers(int[] arr, int k) { if(arr == null || arr.length < k || k == 0) return new int[0]; PriorityQueue<Integer> maxHeap = new Prior

2020-10-17 19:00:51 68

原创 弗兰西刷题日记-剑指offer-59(2)-队列的最大值

import java.util.*; class MaxQueue { private Queue<Integer> queue; private LinkedList<Integer> max; public MaxQueue() { queue = new LinkedList<>(); max = new LinkedList<>(); } public int max

2020-10-16 22:03:04 101

原创 弗兰西刷题日记-剑指offer-30-包含min函数的栈

import java.util.*; class MinStack { private Stack<Integer> stack; private Stack<Integer> minStack; /** initialize your data structure here. */ public MinStack() { stack = new Stack<>(); minStack = new Sta

2020-10-16 17:13:39 59

原创 弗兰西刷题日记-剑指offer-09-两个栈实现队列

import java.util.*; class CQueue { private Stack<Integer> stack1; private Stack<Integer> stack2; public CQueue() { stack1 = new Stack<>(); stack2 = new Stack<>(); } public void appendTail(in

2020-10-16 17:04:20 107

原创 计算机网络——ARP(ARP过程、欺骗、解决办法)

ARP 协议过程 ARP协议是通过目的IP地址得到其MAC地址的一种网络协议,每台主机都会维护一个ARP缓冲区,缓冲区里有ARP缓存表,表中包含了三个字段(IP地址、IP地址对应的MAC地址、类型(静态、动态)),ARP协议过程为: 主机在发包之前查询ARP映射表,如果目的IP地址存在,将对应的MAC地址作为目的MAC地址进行数据包的发送。 如果不存在,就会构建一个ARP请求报文段,其中包含目的IP地址,源IP地址,源MAC地址等信息。然后在网段中通过广播包的形式发送(目的MAC地址置为全F),网段中其他

2020-09-29 10:29:51 2033

原创 斐波那契避免爆栈

题目来源 题目信息 思路介绍 可以从递归和迭代两个来考虑,传统递归的话容易发生爆栈,所以本题考虑使用迭代的方式。 代码展示 class Solution { public int fib(int n) { if(n < 0){ return -1; } else if(n == 0){ ...

2020-05-03 19:20:24 225

原创 栈模拟队列尾插和头删

题目来源 题目信息 思路介绍 这道题简单难度,关键是联想到栈和队列的区别,栈——先进后出,队列——先进先出。 所以要想使用栈来模拟队列,我们可以想到使用两个栈不断地“倒腾”数据: 在添加元素到尾部的时候,若是栈一有元素,将全部元素压入栈二,然后再直接将元素压入栈二 在删除队列头部元素时,将栈二的元素全部出栈到栈一,此时栈一顶部元素就是队列头部元素 代码展示 class CQueue{ S...

2020-05-03 19:00:00 339

原创 Exception与Error的爱恨纠葛

Error Error类对象是由 JVM 生成并且抛出,大多数操作与代码编写者所执行的

2020-04-23 11:58:14 98

原创 快速排序的精美写法

class QUICKSORT{ public void quickSort(int[] array, int leftBound, int rightBound){ if(leftBound >= rightBound) return; int middle = patition(int[] array, int leftBound, int rightBound); qui...

2020-04-14 23:05:09 114

原创 原型模式与深浅拷贝(克隆)

原型模式简述 先简单的说一下原型模式,原型模式属于创建型模式,和单例模式属于同一个大类,都是用来生成的对象的,与 java 中的 new 不同,原型模式会把一个对象的属性值拷贝一份复制给另外一个对象。而 new 需要传入需要的参数,不如原型模式方便。 示例代码 //需要实现 Cloneable 接口 class Test implements Cloneable{ public int t...

2020-04-14 00:08:47 145

原创 单例模式的五大护法

饿汉式 为何叫作饿汉式,意思是很饥饿,那么就会一开始就准备好,以防之后吃不饱,名字由此而来。代码如下 class HUNGRYMAN{ //这里实例化方法要设置成私有的,以防外部直接new对象,破坏单例 private HUNGRYMAN(){ } //这里即为一开始就创建好对象,需要调用的时候,直接返回,不需要新创建 private static HUNGRYM...

2020-04-13 23:10:36 157

空空如也

空空如也

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

TA关注的人

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