3 超悦人生

尚未进行身份认证

我要认证

原创公众号【超悦编程】,专注于算法、数据结构和计算机基础知识。

等级
TA的排名 9w+

一文搞懂高频面试题之四种常用的限流算法,从算法原理到实现,再到对比分析

看完这篇,还敢说你不会限流算法?本文对常用的限流算法计数器固定窗口算法、滑动窗口算法、漏斗算法和令牌桶算法进行了分别介绍,并给出具体的实现。

2020-09-09 16:29:22

面试官:来写个代码求一下两个数的最大公约数吧

面试官真的只是想让你写个代码吗?

2020-09-04 19:05:29

《一文说透数据结构》系列之什么是堆?看这一篇就够了

本文将首先介绍什么是堆,然后介绍了堆的插入和删除操作,最后给出了堆的代码实现,并进行了测试。

2020-01-26 18:59:34

《深入浅出话数据结构》系列之什么是B树、B+树?为什么二叉查找树不行?

本文将为大家介绍B树和B+树,首先介绍了B树的应用场景,为什么需要B树;然后介绍了B树的查询和插入过程;最后谈了B+树针对B树的改进。

2020-01-18 13:01:10

都2020年了,听说你还不会归并排序?手把手教你手写归并排序算法

本文介绍了归并排序的基本思想,递归方法的一般写法,最后一步步手写归并排序,并对其性能进行了分析。

2020-01-16 20:43:49

为什么会有多线程?什么是线程安全?如何保证线程安全?(带详细例子)

1. 为什么会有多线程? 2. 什么是线程安全?3. 怎么样保证线程安全?

2020-01-14 18:28:30

为什么要有红黑树?什么是红黑树?画了20张图,看完这篇你就明白了

为什么要有红黑树?什么是红黑树?画了20张图,看完这篇你就明白了

2020-01-12 23:54:54

Git仓库超过100M大文件自动检测并修改.gitattributes文件程序(java实现)

最近做项目用git向github推送时,总是出现大于100M的文件导致push失败,每次都要手动找到大于100M的文件,然后修改.gitattributes,用git-fls 上传,很麻烦,所以就用Java写了一个自动检测Git仓库中大于100M的文件,并将其添加到.gitattributes的程序,代码如下所示。使用时只需要将main函数中的gitRepositoryDir路径改为自己仓库的路径即可。另外修改.gitattributes文件的方法是注释了的,还是建议手动添加,不然出问题很麻烦。

2020-01-10 10:42:53

Java中Vector与ArrayList的区别

ArrayList与Vector的区别主要包括两个方面:.线程安全性Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它 的方法之间是线程不同步的。所以如果是多线程访问的话,最好使用Vector,可以避免编写保证线程之间安全的代码。数据增长二者都有一个初始容量大小,采用线性连续存储空间;当Vector或ArrayList中的元素超过它的初始...

2020-01-02 16:38:07

java中ArrayList、LinkedList和Vector的区别与选取

java中常用的List的实现类有ArrayList、LinkedList和Vector。ArrayList底层通过数组实现,查询速度快,增删改慢。LinkedList底层通过链表实现,增删改快,查询速度慢。Vector底层是数组结构,但是Vector是线程同步的,所以它也是线程安全的,效率比ArrayList低。选取原则在开发中的选取时主要考虑以下几个问题:线程安全性问题如果...

2020-01-02 16:28:11

java语言实现位图

最近在做项目用到了位图,但是java中没有实现类,就自己写了一个,底层用byte数组进行封装,代码如下:public class BitMap { private int length; private byte[] data; private BitMap(){ } public BitMap(int len) { this.lengt...

2019-12-29 18:21:47

JS中的clear()方法为什么不起作用?

最近在做项目时,在HTML中编写了一个超链接,超链接调用Js中的clear()方法,但是无论怎么尝试发现clear()方法都不起作用,这是怎么回事呢?HTML中的代码如下:

2019-12-24 10:50:09

LeetCode 458. Poor Pigs

LeetCode 458. Poor Pigs

2019-11-29 15:27:07

栈的压入、弹出序列(java实现)

问题描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解决方案创建一个栈,如果栈顶元素是要待弹出序列的值,则弹出,否则一直压栈,直...

2019-11-09 16:16:36

包含min函数的栈(用辅助栈和不用辅助栈两种写法 java实现)

问题描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。解决方案1利用一个辅助栈来存储最小值,入栈和出栈时同时维护辅助栈,代码如下:import java.util.Stack;public class Solution { Stack<Integer> stack = new Stack<Int...

2019-11-02 21:31:21

正则表达式匹配(java实现)

问题描述请实现一个函数用来匹配包括’.‘和’ * ‘的正则表达式。模式中的字符’.'表示任意一个字符,而 ’ * '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab * ac * a"匹配,但是与"aa.a"和"ab * a"均不匹配解决方案递归解决,代码如下: public boolean...

2019-10-31 10:25:21

LeetCode655.Print Binary Tree(java实现)

问题描述Print a binary tree in an m*n 2D string array following these rules:The row number m should be equal to the height of the given binary tree.The column number n should always be an odd number....

2019-10-31 09:43:14

对称二叉树(java实现)

问题描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。解决方案采用层次遍历,注意空节点也要加入队列,代码如下:/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; pub...

2019-10-30 19:51:57

删除链表中重复的节点(Java实现)

问题描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5解决方案注意边界即可,代码如下:/* public class ListNode { int val; ListNode next = n...

2019-10-30 19:09:33

按之字形顺序打印二叉树(Java实现)

问题描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解决方案代码如下:import java.util.ArrayList;import java.util.LinkedList;/*public class TreeNode { int val = 0; Tr...

2019-10-28 23:01:25

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。