自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hebtu666

少说,多做。

  • 博客(36)
  • 论坛 (1)
  • 收藏
  • 关注

原创 《这是全网最硬核redis总结,谁赞成,谁反对?》六万字大合集

后端需要知道的关于redis的事,基本都在这里了。此文后续会改为粉丝可见,所以喜欢的请提前关注。你的点赞和评论是我创作的最大动力,谢谢。《三天给你聊清楚redis》第1天先唠唠redis是个啥(18629字)一、入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。• Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人,.

2021-03-15 14:00:02 39236 605

原创 这篇不讨好任何人的回忆录,记录了我从双非学校到BAT/TMD六offer的原因

注:给我想个新名字好不好呀,采用了直接发百元红包!没别的,想让大家认识兔兔rabbit,说一下自己的经验教训,应该会对很多人有帮助。一、前言在今年,我要毕业了,基本结束了大学生活,踏入了工作环境,觉得是时候写一个总结,给这段时光一个交代,也让多年后的我,还能回忆起这段经历,不忘初心。想起小学作文有个结构叫“总分总”,那我就先来简单的总结一下这两个环境吧。二、我的学校和工作学校,说实话,出了省就很少人知道的学校,学生基本和一流互联网公司无缘,如果范围缩小到后端开发,我觉得可以把基本去掉.

2021-03-31 17:06:18 18869 366

原创 《兔兔公司的历史》那些年,百度的荣耀和沉沦

这是全站最硬核的兔子700+文章后的第一篇软文,觉得喜欢的同学可以三连一波,如果大家喜欢,我会出公司的历史系列、互联网大佬系列、产品经理系列,大家喜欢哪个呢?百度公司的发展趋势还记得南宋词人辛弃疾的那首词吗?众里寻他千百度,蓦然回首,那人却在灯火阑珊处。百度公司的名字就起源于这首词。百度公司于2000年1月18日在开曼群岛注册成立。该群岛位于加勒比海,是一块英属殖民地,由三座岛屿组成,离美国东南方的佛罗里达州不远。开曼群岛在1978年获得了一个皇家法令,法令规定永远豁免开曼群岛的缴税义务,故而,.

2021-03-29 19:40:29 7429 31

原创 超硬核!小白读了这篇文章,就能在算法圈混了

作为一只超级硬核的兔子,从来不给你说废话,只有最有用的干货!这些神级算法送给你目录第一节1.1bogo排序1.2位运算1.3打擂台1.4morris遍历第二节2.1睡眠排序2.2会死的兔子2.3矩阵快速幂2.4摔手机/摔鸡蛋时空复杂度目录二分尝试较优的策略归纳表达式写出暴力递归改为动态规划压缩空间四边形不等式优化换一种思路最优解测试:第三节3.1斐波那契之美3.2桶排序3.3快速排序...

2021-03-29 10:27:15 11637 44

原创 超硬核!数据结构学霸笔记,考试面试吹牛就靠它

上次发操作系统笔记,很快浏览上万,这次数据结构比上次硬核的多哦,同样的会发超硬核代码,关注吧。

2021-03-26 11:48:34 18070 99

原创 超硬核!学霸把操作系统经典算法给敲完了!要知行合一

上期的笔记,浏览快1万了,既然关注的人很多,那就发出来承诺过的算法全模拟,希望帮到你们。

2021-03-24 12:48:58 13166 59

原创 超硬核!操作系统学霸笔记,考试复习面试全靠它

之后会发布基于基础知识的大部分算法的模拟代码合集,敬请关注。

2021-03-22 18:44:01 17264 71

原创 不骗你,没读这一篇,你不可能懂二分

上篇文章讲动态规划获得了80k浏览,这次的二分也值得你们一看,这个系列是特别用心准备出书的哦

2021-03-22 10:40:19 11998 53

原创 《关于我的那些面经》——百度后端(附答案)

作者保证,本系列全是纯干货真实记录,绝对不是某些营销号瞎编乱造的面试。一、公司的简介百度是全球最大的中文搜索引擎,是中国最大的以信息和知识为核心的互联网综合服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。百度作为全球最大的中文搜索引擎,百度每天响应来自100余个国家和地区的数十亿次搜索请求,是网民获取中文信息的最主要入口。百度以“用科技...

2021-03-19 10:03:36 9921 62

原创 《关于我的那些面经》滴滴Java岗(附答案)

手撕单例模式所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。在Java,一般常用在工具类的实现或创建对象需要消耗资源。特点:类构造器私有、持有自己类型的属性、对外提供获取实例的静态方法懒汉模式 线程不安全,延迟初始化,严格意义上不是不是单例模式public class Singleton { private static Singleton instance; private Singleton (){}

2021-03-19 09:56:51 16065 63

原创 超硬核!躺进BAT以后我总结了出现最多的15道数组题

作为一个硬核作者,绝不和你扯废话,干货无套路送你题目一: 给定一个数组arr,求出需要排序的最短子数组长度要求: 时间o(n),空间o(1)思路: 有序的数组中,任意一个数字,一定小于左边的数大于右边的数。 我们找到的需要排序的子数组,显然是比右边最小的值大,或比左边最大的值小。 我们初始化变量noMinindex=-1;从右往左遍历,记录经过的最小值为min,若当前数大于min,说明,如果要有序,min一定要放 在当前数左边,我们...

2021-03-18 07:30:52 11044 39

原创 那个谷歌的网红扔鸡蛋的题,来看看教科书式的回答

leetcode顶级难题,谷歌面试天天问,来看看吧,带你来一步一步达到最优解。谷歌不知道问了多少遍,蓝桥杯也出现过,leetcode上是顶级难题,到底是什么题能如此频繁地出现?我们一探究竟吧。原题描述:x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试...

2021-03-17 10:35:04 10326 66

原创 必须知道的python专属骚技巧25例

本文我总结了25个python专属骚操作,实属提高效率/同事吹牛只利器,确定不收藏吗?一、原地交换Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法x, y = 10, 20print(x, y) x, y = y, xprint(x, y) #1 (10, 20)#2 (20, 10)原理:赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量 <a> 和 <b>。一旦赋值完成,新的元组变成..

2021-03-16 11:19:15 21312 174

原创 复习Java的精华总结

输入java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。下面是创建 Scanner 对象的基本语法:Scanner s = new Scanner(System.in);使用方法如下://对应类型用对应的方法接收 String stringx=s.next();String stringy=s.nextLine(); int intx=s.nextInt();long longx=s.nextLong();

2021-03-15 09:26:48 13229 25

原创 精华Java问题总结

当时在网上汇总了不知多少面试和基础题,弄了个精华总结。1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、short s1= 1; s1= s1+1;有没有错?s1+1运算时会自动提升类型,结果是int,赋值给s1时,将报告需要强转类型的错误。3、short s1= 1; s1 += 1;有没有错?+=是java规定的运算符,编译器会对它进行特殊处理,因此可以正确编..

2021-03-15 09:22:40 16910 67

原创 算法题的输入大总结

本文以求和为例多组输入,每组输入共一行,包括两个整数A, BSample Input1 212 24400 500Sample Output336900import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) {

2021-03-15 00:31:08 7685 49

原创 leetcode1047. 删除字符串中的所有相邻重复项(栈的日常应用)

给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。提示:...

2021-03-11 12:34:27 3177 56

原创 《一天聊一个设计模式》 抽象工厂

4. 抽象工厂(Abstract Factory)Intent提供一个接口,用于创建 相关的对象家族 。Class Diagram抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大不同。抽象工厂模式用到了工厂方法模式来创建单一对象,AbstractFactory 中的 createProductA() 和 createProductB() 方法都是让子类来实现,这两个方法单独来

2021-03-11 12:00:34 1748 25

原创 《一天聊一个设计模式》 策略

9. 策略(Strategy)Intent定义一系列算法,封装每个算法,并使它们可以互换。策略模式可以让算法独立于使用它的客户端。Class DiagramStrategy 接口定义了一个算法族,它们都实现了 behavior() 方法。Context 是使用到该算法族的类,其中的 doSomething() 方法会调用 behavior(),setStrategy(Strategy) 方法可以动态地改变 strategy 对象,也就是说能动态地改变 Context 所使用的算法。与状

2021-03-11 11:08:09 3128 23

原创 《一天聊一个设计模式》备忘录

备忘录(Memento)Intent在不违反封装的情况下获得对象的内部状态,从而在需要时可以将对象恢复到最初状态。Class DiagramOriginator:原始对象Caretaker:负责保存好备忘录Memento:备忘录,存储原始对象的的状态。备忘录实际上有两个接口,一个是提供给 Caretaker 的窄接口:它只能将备忘录传递给其它对象;一个是提供给 Originator 的宽接口,允许它访问到先前状态所需的所有数据。理想情况是只允许 Originator 访问本备忘录的内部状态。

2021-03-11 11:05:58 1548 22

原创 leetcode976. 三角形的最大周长(又是你得不到的简单题)

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <= 100001 <= A[i] <= 10^6class Solution {...

2021-03-08 15:59:41 7059 37

原创 leetcode1528. 重新排列字符串

给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。示例 1:输入:s = "codeleet", indices = [4,5,6,7,0,2,1,3]输出:"leetcode"解释:如图所示,"codeleet" 重新排列后变为 "leetcode" 。示例 2:输入:s = "abc", indices = [0,1,2]输出:"abc".

2021-03-08 15:52:55 1597 20

原创 leetcode1502. 判断能否形成等差数列(小学生难度)

给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入:arr = [1,2,4]输出:false解释:无法通过重新排序得到等差数列。提示..

2021-03-08 15:47:05 2285 14

原创 《一天聊一个设计模式》 单例

我是兔兔rabbit,关注我吧,给自己每天的进步找一个机会和理由,不要被无效信息淹没单例(Singleton)Intent确保一个类只有一个实例,并提供该实例的全局访问点。Class Diagram使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。ImplementationⅠ 懒汉式-线程不安全以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处.

2021-03-08 15:39:35 1680 20

原创 leetcode1721. 交换链表中的节点

给你链表的头节点 head 和一个整数 k 。交换 链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表 从 1 开始索引)。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[1,4,3,2,5]示例 2:输入:head = [7,9,6,6,7,8,3,0,9,5], k = 5输出:[7,9,6,6,8,7,3,0,9,5]示例 3:输入:head = [1], k = 1输出:[1]示例 4:输入:head = [.

2021-03-07 17:22:17 1703 30

原创 leetcode1669. 合并两个链表

给你两个链表list1 和list2,它们包含的元素分别为n 个和m 个。请你将list1中第a个节点到第b个节点删除,并将list2接在被删除节点的位置。下图中蓝色边和节点展示了操作后的结果:请你返回结果链表的头指针。示例 1:输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]输出:[0,1,2,1000000,1000001,1000002,5]解释:我...

2021-03-07 17:16:41 4004 20

原创 leetcode设计链表,非常工整的实现你值得拥有

设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将成为链表的...

2021-03-07 17:14:31 9055 37

原创 leetcode453. 最小操作次数使数组元素相等(贼难的简单题)

给定一个长度为 n 的 非空 整数数组,每次操作将会使 n - 1 个元素增加 1。找出让数组所有元素相等的最小操作次数。示例:输入:[1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]思路n-1个数同时加一,就好比每次有一个数自身减一,这样的话每个元素减去最小值求其和就是答案。class Solution(object):...

2021-03-05 16:59:54 2477 37

原创 leetcode628. 三个数的最大乘积(简单,我觉得你不会)

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入:nums = [1,2,3]输出:6示例 2:输入:nums = [1,2,3,4]输出:24示例 3:输入:nums = [-1,-2,-3]输出:-6提示:3 <= nums.length <=104-1000 <= nums[i] <= 1000思路:有三个以上正数:三大有两个正数:两小一大有一个正数:两小一大没正...

2021-03-05 16:27:57 2415 22

原创 leetcode541. 反转字符串 II(字符串一律用py秒杀)

给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"提示:该字符串只包含小写英文字母。给定字符串的长度和 k 在 [1, 10000] 范围内。思路:通俗一点说,每隔k个反转k个,末尾不够k个时全部反转;...

2021-03-05 15:06:41 4853 24

原创 leader:你的代码太烂了我根本看不懂

一、可读性的重要性编程有很大一部分时间是在阅读代码,不仅要阅读自己的代码,而且要阅读别人的代码。因此,可读性良好的代码能够大大提高编程效率。可读性良好的代码往往会让代码架构更好,因为程序员更愿意去修改这部分代码,而且也更容易修改。只有在核心领域为了效率才可以放弃可读性,否则可读性是第一位。二、用名字表达代码含义一些比较有表达力的单词:单词可替代单词senddeliver、dispatch、announce、distribute、routefindsearch、ext

2021-03-05 00:10:22 6098 78

原创 正则表达式必知必会

一、概述正则表达式用于文本内容的查找和替换。正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。正则表达式在线工具二、匹配单个字符. 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符;. 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。正则表达式一般是区分大小写的,但也有些实现不区分。正则表达式rabbit匹配结果My name is rabbit .三、匹配一

2021-03-04 00:34:23 4413 46

原创 leetcode884. 两句话中的不常见单词(你肯定会被惊呆了)

给定两个句子A和B。(句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = "this apple is sweet", B = "this apple is sour"输出:["sweet","sour"]示例2:输入:A = "apple apple", B = "banana"输出:["...

2021-03-03 16:34:02 6437 46

原创 leetcode896. 单调数列

如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输入:[6,5,4,4]输出:true示例 3:输入:[1,3,2]输出:false示例 4:输入:[..

2021-03-03 16:31:41 1531 20

原创 leetcode258. 各位相加(简单题,但是你不看答案想不出来)

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?思路:我想的是给的int是有范围的,我就重复很多次即可。class Solution { public int addDigits(int num) { num = num % 1..

2021-03-03 16:30:28 8401 83

原创 leetcode867. 转置矩阵

给你一个二维整数数组 matrix,返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:m == matrix.lengthn == matrix[i].leng..

2021-03-03 16:24:23 1546 16

空空如也

hebtu666的留言板

发表于 2020-01-02 最后回复 2020-07-14

空空如也

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

TA关注的人 TA的粉丝

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