自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 leetcode9. 回文数

leetcode9. 回文数题目描述链接: leetcode9.给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:fals

2021-08-16 18:56:50 132

原创 leetcode224. 基本计算器

leetcode224. 基本计算器题目描述链接: leetcode167.给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。示例1:输入:s = "1 + 1"输出:2示例2:输入:s = " 2-1 + 2 "输出:3示例 3:输入:s = "(1+(4+5+2)-3)+(6+8)"输出:23题解java解法class Solution { public int calculate(String s) { Deque&

2021-08-11 20:51:25 165

原创 leetcode170. 两数之和 III - 数据结构设计

leetcode170. 两数之和 III - 数据结构设计题目描述链接: leetcode170.设计一个接收整数流的数据结构,该数据结构支持检查是否存在两数之和等于特定值。实现 TwoSum 类:TwoSum() 使用空数组初始化 TwoSum 对象void add(int number) 向数据结构添加一个数 numberboolean find(int value) 寻找数据结构中是否存在一对整数,使得两数之和与给定的值相等。如果存在,返回 true ;否则,返回 false 。示例

2021-08-11 20:11:39 211

原创 leetcode1. 两数之和

leetcode1. 两数之和题目描述链接: leetcode1.给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

2021-08-11 19:53:48 188

原创 leetcode3. 无重复字符的最长子串

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

2021-08-04 10:19:25 113

原创 leetcode438. 找到字符串中所有字母异位词

leetcode438. 找到字符串中所有字母异位词题目描述链接: leetcode438.给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指字母相同,但排列不同的字符串。示例1:输入: s = "cbaebabacd", p = "abc"输出: [0,6]解释:起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。示例2

2021-08-04 10:18:54 65

原创 Java基础知识之Map:compute, computeIfAbsent, computeIfPresent

Java基础知识之Map:compute, computeIfAbsent, computeIfPresent功能default V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction)无论指定的key在map中是否存在,都会对key进行映射操作,并保存到map中,最后返回新的valuedefault V computeIfAbsent(K key, Function<? su

2021-08-02 20:23:19 88

原创 leetcode567. 字符串的排列

leetcode567. 字符串的排列题目描述链接: leetcode567.给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,s1 的排列之一是 s2 的 子串 。示例1:输入:s1 = "ab" s2 = "eidbaooo"输出:true解释:s2 包含 s1 的排列之一 ("ba").示例2:输入:s1= "ab" s2 = "eidboaoo" 输出:false题解滑动窗口:(1)window维护s1各个字符出现的次数(2)滑

2021-08-02 20:22:36 80

原创 leetcode76. 最小覆盖子串

leetcode76. 最小覆盖子串题目描述链接: leetcode76.给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例2:输入:s = "a",

2021-08-02 20:21:48 139

原创 剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点题目描述链接: leetcode876.输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.题解快慢指针,让快指针先走 k 步,然

2021-07-31 17:03:15 45

原创 leetcode876. 链表的中间结点

leetcode876. 链表的中间结点题目描述链接: leetcode876.给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.nex

2021-07-31 17:02:44 54

原创 leetcode167. 两数之和 II - 输入有序数组

leetcode167. 两数之和 II - 输入有序数组题目描述链接: leetcode167.给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入只对应唯一的答案,而且你不可以

2021-07-31 17:02:11 59

原创 leetcode142. 环形链表 II

leetcode142. 环形链表 II题目描述链接: leetcode142.给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。示例1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点

2021-07-31 17:01:36 68

原创 leetcode141. 环形链表

leetcode141. 环形链表题目描述链接: leetcode141.给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例1:输入:head = [3,

2021-07-31 17:01:06 139

原创 leetcode34. 在排序数组中查找元素的第一个和最后一个位置

leetcode34. 在排序数组中查找元素的第一个和最后一个位置题目描述链接: leetcode34.给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。示例1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:

2021-07-31 17:00:17 142

原创 leetcode704. 二分查找

leetcode704. 二分查找题目描述链接: leetcode704.给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在

2021-07-31 16:59:43 129

原创 leetcode51. N皇后

leetcode51. N皇后题目描述链接: leetcode51.n皇后问题 研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的n皇后问题 的解决方案。每一种解法包含一个不同的n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示

2021-07-31 11:35:59 97

原创 leetcode46. 全排列

leetcode46. 全排列题目描述链接: leetcode46.给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例3:输入:nums = [1]输出:[[1]]题解回溯算法java解法public

2021-07-30 20:06:17 36

原创 leetcode78. 子集

leetcode78. 子集题目描述链接: leetcode78.给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例2:输入:nums = [0]输出:[[],[0]]题解回溯算法java解法public class Subsets78 {

2021-07-30 19:57:13 50

原创 leetcode77. 组合

leetcode77. 组合题目描述链接: leetcode77.给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例2:输入:n = 1, k = 1输出:[[1]]题解回溯算法java解法public class Combine77 { Li

2021-07-30 19:35:00 39

原创 leetcode547. 省份数量

leetcode547. 省份数量题目描述链接: leetcode547.有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直

2021-07-30 12:38:42 75

原创 重构-改善既有的代码设计-------代码的坏味道

重构-改善既有的代码设计代码的坏味道神秘命名(Mysterious Name)给函数、变量、模块和类命名时,要使它能清晰地表明自己的功能和用法,使得写下的代码直观明了。常用重构手法为重命名,包括:改变函数声明变量改名字段改名等重复代码(Duplicated Code)若代码中有一处以上的相同的代码结构,例如同一个类的两个函数含有相同的表达式,修改重复代码设法将其合并会使得程序更好常用的重构方法包括:提炼函数:适用于同一个类中完全相同的重复代码移动语句:适用于同一个类中相似的重复

2021-07-27 11:50:43 1267

原创 leetcode226. 翻转二叉树

leetcode226. 翻转二叉树题目描述链接: leetcode226.翻转一棵二叉树。示例:输入输出题解public class leetcode226 { public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val

2021-07-26 11:59:14 34

原创 leetcode100. 相同的树

leetcode100. 相同的树题目描述链接: leetcode100.给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入:p = [1,2,3], q = [1,2,3]输出:true示例2:输入:p = [1,2], q = [1,null,2]输出:false示例3:输入:p = [1,2,1], q = [1,1,2]输出:false题解判断两颗二叉树是否

2021-07-26 11:52:57 46

原创 常见限流算法

常见限流算法限流背景在代码开发中,限流一般指的是为了保证系统的稳定性,需要拒绝一些请求或者延迟处理一些请求来限制对系统的并发请求数量比如说,某个系统中使用了MQ来通信,对于系统中一些重要操作,例如数据删除、拷贝等,当调用此类操作的接口的时候,相关服务端会发送对应的消息到MQ通道中来记录相关操作时间、操作人等等关键信息。同时会有一个消费者来消费这些消息,将其记录在数据库中。若某个时刻消息量突增,则很可能该消费者处理不过来而导致系统崩溃。因此,需要对消费者端进行限流,来防止消息突增,以保护系统的正常工

2021-07-22 21:12:50 216

原创 leetcode322. 零钱兑换

leetcode547. 省份数量题目描述链接: leetcode547.有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直

2021-07-20 17:13:38 38

原创 leetcode990. 等式方程的可满足性

leetcode990. 等式方程的可满足性题目描述链接: leetcode990.给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或"a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回true,否则返回 false。示例1:输入:["a==b","b!=a"]输出:false解释:如果我们指定,a = 1 且

2021-07-20 16:53:36 87

原创 leetcode1319. 连通网络的操作次数

leetcode1319. 连通网络的操作次数题目描述链接: leetcode1319.用以太网线缆将n台计算机连接成一个网络,计算机的编号从0到n-1。线缆用connections表示,其中connections[i] = [a, b]连接了计算机a和b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的

2021-07-20 16:04:42 72

原创 并查集 (Union-Find)算法

并查集 (Union-Find)问题现象并查集算法主要是用来解决动态连通性问题动态连通性(Dynamic Connectivity)根据《Algorithms4》可知,动态连通性即给定N个对象的集合,可以做以下操作:Union操作:连接两个对象Find/connected查询: 两个对象是否连接?其中,连通具有以下性质:Reflexive: p和p是相连的,又称自反性;Symmetric: 如果p和q是相连的,那么q和p也是相连的,又称对称性;Transitive: 如果p和q相连

2021-07-20 15:20:28 211

原创 golang CI: Use result of type assertion to simplify cases SCC-S1034

问题现象golang ci检测提示:S1034: assigning the result of this type assertion to a variable (switch inter := inter.(type)) could eliminate the following type assertions:问题分析将某类型断言的结果分配给变量可以消除后续的类型断言,即该变量就变成了类型转换后的结果了,这样就消除了多余的类型转换问题举例例如以下未知类型转换为string类型的代码:

2021-07-19 17:47:41 461

空空如也

空空如也

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

TA关注的人

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