自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Slayer_Zhao的博客

会点算法の前端zzzz~~

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

原创 Leetcode(Java)-3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"w...

2020-01-31 20:05:39 255

原创 RabbitMQ-Java实现Publish/Subscribe订阅模式

订阅模式一个生成者,多个消费者,每个消费者有自己的队列,生产者没有直接把消息发到队列,而是发给了交换机exchange适合场景举例:对于同一个消息,要发邮件,也要发短信,因此拆分成两个队列新建连接RabbitMQ的工具类utilsimport com.rabbitmq.client.Connection;import com.rabbitmq.client.Conne...

2020-01-31 17:14:33 775

原创 Leetcode(Java)-2. 两数相加

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...

2020-01-31 15:17:57 170

原创 Leetcode(Java)-1260. 二维网格迁移

给你一个 n 行 m 列的二维网格grid和一个整数k。你需要将grid迁移k次。每次「迁移」操作将会引发下述活动:位于 grid[i][j]的元素将会移动到grid[i][j + 1]。位于grid[i][n- 1] 的元素将会移动到grid[i + 1][0]。位于 grid[m- 1][- 1]的元素将会移动到grid[0][0]。请你返回...

2020-01-31 14:05:43 236

原创 Leetcode(Java)-501. 二叉搜索树中的众数

给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值结点右子树中所含结点的值大于等于当前结点的值左子树和右子树都是二叉搜索树例如:给定 BST [1,null,2,2], 1 \ 2 / 2返回[2].提示:如果众数超过1个,不需...

2020-01-31 13:30:14 317

原创 Leetcode(Java)-371. 两整数之和

不使用运算符+ 和-,计算两整数a、b​​​​​​​之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1思路:class Solution { public int getSum(int a, int b) { if (a == 0) return b; ...

2020-01-31 12:21:58 90

原创 Leetcode(Java)-113. 路径总和 II

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22,/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode le...

2020-01-30 17:32:34 252

原创 Leetcode(Java)-112. 路径总和

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...

2020-01-30 17:03:43 84

原创 Leetcode(Java)-437. 路径总和 III

给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:/** * Definition for a binary tree node. * ...

2020-01-30 16:51:15 180

原创 Leetcode(Java)-349. 两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。思路:使用HashSetclass ...

2020-01-30 14:53:11 243

原创 Leetcode(Java)-231. 2的幂

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例1:输入: 1输出: true解释: 2^0= 1示例 2:输入: 16输出: true解释: 2^4= 16示例 3:输入: 218输出: falseclass Solution { public boolean isPowerOfTwo(int n) { ...

2020-01-30 14:33:11 136

原创 Leetcode(Java)-342. 4的幂

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?思路1:一般方法,除到无法整除再判断class Solution { public boolean isPowerOfFour(int num) {...

2020-01-30 14:27:16 157

原创 Leetcode(Java)-283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。方法1:从第一位开始,寻找数组中的非0数放在最前面class Solution { public void moveZeroes(int...

2020-01-30 14:04:41 139

原创 Leetcode(Java)-263. 丑数

编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2, 3, 5的正整数。示例 1:输入: 6输出: true解释: 6 = 2 ×3示例 2:输入: 8输出: true解释: 8 = 2 × 2 ×2示例3:输入: 14输出: false解释: 14 不是丑数,因为它包含了另外一个质因数7。说明:1是丑数。输入不会超过 32 位有...

2020-01-30 13:48:39 156

原创 Leetcode(Java)-232. 用栈实现队列

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

2020-01-30 13:36:28 173

原创 RabbitMQ-Java实现工作队列work_queues

上篇博文已经实现了RabbitMQ在java中的配置和简单队列的实现,这篇博文将结合现实情况介绍RabbitMQ中的工作队列。工作队列-单个生产者对应多个消费者新建连接RabbitMQ的工具类utilsimport com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;i...

2020-01-30 12:53:00 439

原创 Leetcode(Java)-226. 翻转二叉树

翻转一棵二叉树。示例:输入: 4 / \ 2 7/ \ / \1 3 6 9输出: 4 / \ 7 2/ \ / \9 6 3 1思路:递归/** * Definition for a binary tree node. * public class TreeNode {...

2020-01-29 18:02:05 154

原创 Leetcode(Java)-219. 存在重复元素 II

给定一个整数数组和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums [i] = nums [j],并且 i 和 j的差的绝对值最大为 k(这里指的是存在k使得num[i]=nums[i+k])。示例1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true...

2020-01-29 17:42:21 217

原创 RabbitMQ-Java实现简单队列

请先在本地安装并且运行rabbitMQ控制台 localhost:15672rabbitMQ简单队列新建一个Maven项目maven配置 <dependencies> <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --> <depende...

2020-01-29 15:14:57 477

原创 Leetcode(Java)-206. 反转链表

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?方法一:迭代假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。在遍历列表时,将当前节点的 next ...

2020-01-29 13:14:29 145

原创 Leetcode(Java)-203. 移除链表元素

删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路:方法:哨兵节点如果删除的节点是中间的节点,则问题似乎非常简单:选择要删除节点的前一个结点 prev。将 prev 的 next 设置为要删除结点的 next。...

2020-01-29 12:49:16 251

原创 Leetcode(Java)-198. 打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 ...

2020-01-23 20:38:27 139

原创 Leetcode(Java)-191. 位1的个数

编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。示例 2:输入:0000000000000000000000001000...

2020-01-23 20:10:22 175

原创 Leetcode(Java)-190. 颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为...

2020-01-23 20:03:49 267 1

原创 Leetcode(Java)-169. 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路1:Hashmap 存储 <数字,数字出现的次数>class Solution { ...

2020-01-23 19:36:54 205

原创 Leetcode(Java)-172. 阶乘后的零

给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释:3! = 6, 尾数中没有零。示例2:输入: 5输出: 1解释:5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为O(logn)。思路我们需要求解这n个数字相乘的结果末尾有多少个0,由于题目要求log的复杂度,因此暴力求解是不行的。通过观察,我们...

2020-01-23 19:08:23 164

原创 Leetcode(Java)-167. 两数之和 II - 输入有序数组

给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], t...

2020-01-23 18:41:38 189

原创 Leetcode(Java)-155. 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。pop()-- 删除栈顶的元素。top()-- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(...

2020-01-22 20:23:37 200

原创 Leetcode(Java)-136. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4关键点 异或的性质 两个数字异或的结果a^b是将 a 和 b 的二进制每一位进行运算,得出的数...

2020-01-22 20:00:42 233

原创 Leetcode(Java)-125. 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false思路:这是一道考察回文的题目,而且是最简单的形式,即判断一个字符串是否是回文。针对这...

2020-01-22 19:49:41 113

原创 Leetcode(Java)-122. 买卖股票的最佳时机 II

给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交...

2020-01-22 19:36:09 141

原创 Leetcode(Java)-121. 买卖股票的最佳时机

给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...

2020-01-22 19:22:06 152

原创 Leetcode(Java)-102. 二叉树的层次遍历

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]思路:BFS/** * Definition for a bi...

2020-01-22 16:59:43 324

原创 Leetcode(Java)-104. 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。思路1:递归/** * Definition for a binary t...

2020-01-22 15:10:01 248

原创 Leetcode(Java)-88. 合并两个有序数组

给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...

2020-01-22 13:59:33 219

原创 Leetcode(Java)-53. 最大子序和

给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。思路1:贪心(动态规划)使用单个数组作为输入来查找最大(...

2020-01-21 21:07:29 161

原创 Leetcode(Java)-26. 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:...

2020-01-21 20:29:50 160

原创 Leetcode(Java)-20. 有效的括号

给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输...

2020-01-21 19:48:34 106

原创 网络,操作系统面试知识点精简版

目录线程和进程区别硬链接与软链接的区别查看某个进程中的线程查看某个文件夹中每个文件夹的大小CPU负载的含义TCP/IPHTTPTCP建立连接:三次握手为什么要采用三次握手,两次不行吗关闭连接:四次挥手为什么连接的时候是三次握手,关闭的时候却是四次握手滑动窗口协议与UDP区别HTTPS线程和进程区别进程是资源分配的最小单位,线...

2020-01-03 11:20:31 230

原创 经典面试问题——如何构建一个秒杀系统?

业务上适当规避根据某些规则对部分用户直接返回没抢到。比如有些用户曾经被系统识别为恶意用户、垃圾用户、僵尸用户,直接告诉用户已经抢完 分散不同客户端打开活动入口的时间。比如将1秒内的流量分散到10秒技术上硬核抗压限流策略。比如在压力测试中我们测到系统QPS达到了极限,那么超过的部分直接返回已经抢完,通过Nginx的lua脚本可以查redis看到QPS数据从而可以动态调节 异步削峰。对R...

2020-01-03 11:13:43 280

空空如也

空空如也

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

TA关注的人

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