自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

up!up!up!

记录日常

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

原创 XStream学习使用、null值保留标签及特殊字符不转义

XStream学习使用、null值保留标签及特殊字符不转义

2024-03-17 12:29:37 1247

原创 剑指 Offer II 014. 字符串中的变位词(滑动窗口与双指针好例题)

剑指 Offer II 014. 字符串中的变位词给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的某个变位词。换句话说,第一个字符串的排列之一是第二个字符串的 子串 。示例 1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例 2:输入: s1= "ab" s2 = "eidboaoo"输出: False提示:1 <= s1.length, s2.lengt

2022-04-12 17:33:21 2356 1

原创 Arrays.binarySearch()方法及其源码分析

Arrays.binarySearch()方法及其源码分析和其使用方法

2022-04-10 19:33:02 5969

原创 数据流中的中位数

数据流的中位数

2022-03-24 19:11:36 3526

原创 mybatis plus代码生成器3.5.1

mybatis plus代码生成器版本升级,改用建造者模式了,设置不生成Controller

2024-01-06 23:23:29 663

原创 IDEA启动报错:Internal error. Please refer to http://jb.gg/ide/critical-startup-errors

IDEA启动报错:Internal error. Please refer to http://jb.gg/ide/critical-startup-errors

2022-05-29 17:33:30 865

原创 redis封装工具类(缓存穿透,缓存击穿(逻辑过期))Ⅰ

封装简单缓存穿透代码流程,逻辑过期解决缓存击穿,redis的setnx模拟互斥锁用于学习

2022-05-01 12:23:20 1334 2

原创 剑指 Offer II 064. 神奇的字典(前缀树+dfs)

设计一个使用单词列表进行初始化的数据结构,单词列表中的单词 互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于已构建的神奇字典中。实现 MagicDictionary 类:MagicDictionary() 初始化对象void buildDict(String[]dictionary) 使用字符串数组dictionary 设定该数据结构,dictionary 中的字符串互不相同bool search(String searchWord)

2022-04-28 20:53:24 641

原创 剑指 Offer II 058. 日程表(平衡二叉树,自定义bst二分搜索)

请实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排,则可以存储这个新的日程安排。MyCalendar 有一个 book(int start, int end)方法。它意味着在 start 到 end 时间内增加一个日程安排,注意,这里的时间是半开区间,即 [start, end), 实数x 的范围为, start <= x < end。当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生重复预订。每次调用 MyCalendar.b

2022-04-27 17:59:08 347

原创 剑指 Offer II 057. 值和下标之差都在给定的范围内(桶排序)

给你一个整数数组 nums 和两个整数k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。示例1:输入:nums = [1,2,3,1], k = 3, t = 0输出:true示例 2:输入:nums = [1,0,1,1], k = 1, t = 2输出:true示例 3:输入:nums = [1,5,

2022-04-27 17:23:42 227

原创 剑指 Offer II 043. 往完全二叉树添加节点(队列+层序遍历)

完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大,第 n 层有 2n-1个节点)的,并且所有的节点都尽可能地集中在左侧。设计一个用完全二叉树初始化的数据结构CBTInserter,它支持以下几种操作:CBTInserter(TreeNode root)使用根节点为root的给定树初始化该数据结构;CBTInserter.insert(int v) 向树中插入一个新节点,节点类型为 TreeNode,值为 v 。使树保持完全二叉树的状态,并返回插入的新节点的父节点的值;

2022-04-21 14:22:20 218

原创 剑指 Offer II 040. 矩阵中最大的矩形(单调栈)

给定一个由0 和 1组成的矩阵 matrix,找出只包含 1 的最大矩形,并返回其面积。注意:此题 matrix输入格式为一维 01 字符串数组。示例 1:输入:matrix = ["10100","10111","11111","10010"]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = ["0"]输出:0示例 4:输入:matrix = ["1"]输出:1示例 5:输入:matrix =

2022-04-21 14:13:31 495

原创 剑指 Offer II 039. 直方图最大矩形面积(单调栈)<必看>

给定非负整数数组 heights,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例 1:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10示例2:输入: heights = [2,4]输出: 4提示:1 <= heights.length <=1050 <= heights[i] <= 104来源:力扣(LeetCode)

2022-04-20 21:38:15 739

原创 剑指 Offer II 037. 小行星碰撞(栈)

剑指 Offer II 037. 小行星碰撞(栈)给定一个整数数组 asteroids,表示在同一行的小行星。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。找出碰撞后剩下的所有小行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例 1:输入:asteroids = [5,10,-5]输出:[5,10]

2022-04-19 19:19:42 323

原创 剑指 Offer II 038. 每日温度(单调栈)

剑指 Offer II 038. 每日温度(单调栈)请根据每日 气温 列表 temperatures,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出:[1,1,1,0]示

2022-04-19 18:41:40 754

原创 剑指 Offer II 036. 后缀表达式(栈)

剑指 Offer II 036. 后缀表达式(栈)根据 逆波兰表示法,求该后缀表达式的计算结果。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1:输入:tokens = ["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例2:输入:token

2022-04-19 17:56:49 1184

原创 剑指 Offer II 017. 含有所有字符的最短字符串(双指针)

剑指 Offer II 017. 含有所有字符的最短字符串(双指针)执行用时 2ms。给定两个字符串 s 和t 。返回 s 中包含t的所有字符的最短子字符串。如果 s 中不存在符合条件的子字符串,则返回空字符串 "" 。如果 s 中存在多个符合条件的子字符串,返回任意一个。注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC" 解释:最短子

2022-04-13 23:08:30 835

原创 剑指 Offer II 013. 二维子矩阵的和(前缀和)

剑指 Offer II 013. 二维子矩阵的和(前缀和)给定一个二维矩阵 matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1,col1) ,右下角为 (row2,col2) 。实现 NumMatrix 类:NumMatrix(int[][] matrix)给定整数矩阵 matrix 进行初始化int sumRegion(int row1, int col1, int row2, int col2)返回左上角 (row1,col1)、右下

2022-04-11 23:43:14 709

原创 剑指 Offer II 008. 和大于等于 target 的最短子数组(滑动窗口)

剑指 Offer II 008. 和大于等于 target 的最短子数组(滑动窗口)给定一个含有n个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组[4,3]是该条件下的长度最小的子数组。

2022-04-11 00:11:33 363

原创 剑指 Offer II 005. 单词长度的最大乘积(位运算)

剑指 Offer II 005. 单词长度的最大乘积(位运算)给定一个字符串数组words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。示例1:输入: words = ["abcw","baz","foo","bar","fxyz","abcdef"]输出: 16 解释: 这两个单词为 "abcw", "fxyz"。它们不包含相同字符,且长度的乘积

2022-04-09 16:27:30 255

原创 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数

剑指 Offer II 003. 前 n 个数字二进制中 1 的个数给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例 1:输入: n = 2输出: [0,1,1]解释: 0 --> 01 --> 12 --> 10示例2:输入: n = 5输出: [0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --> 101

2022-04-08 22:36:57 91

原创 剑指 Offer II 002. 二进制加法(模拟)

剑指 Offer II 002给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “10”输出: “101”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 10^4字符串如果不是 “0”,就

2022-04-08 22:16:47 164

原创 剑指 Offer II 001. 整数除法

剑指 Offer II 001. 整数除法题目给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335)= -2 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1示例 1:输入:a = 15,

2022-04-08 22:03:45 445

原创 数学解法必看题总结Ⅰ

数学解法必看题总结Ⅰ

2022-04-08 11:35:42 73

原创 剑指 Offer 51. 数组中的逆序对(归并排序)

剑指 Offer 51. 数组中的逆序对(归并排序)在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000利用归并排序解析

2022-04-05 19:52:34 221

原创 动态规划必看题总结Ⅰ

动态规划必看题总结Ⅰ

2022-04-04 23:54:36 233

原创 剑指 Offer 38. 字符串的排列(回溯法)

剑指 Offer 38. 字符串的排列(回溯法)输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8

2022-04-03 21:08:03 473

原创 剑指 Offer 59 - I. 滑动窗口的最大值

剑指 Offer 59 - I. 滑动窗口的最大值给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 1 3 [-1 -3 5] 3 6 7 5 1 3

2022-04-02 21:29:34 417

原创 顺时针打印矩阵(模拟)

顺时针打印矩阵(模拟)输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100 0 <= matri

2022-03-31 17:14:44 94

原创 剑指 Offer 57 - II. 和为s的连续正数序列(滑动窗口)

剑指 Offer 57 - II. 和为s的连续正数序列(滑动窗口)输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9 输出:[[2,3,4],[4,5]]示例 2:输入:target = 15 输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制: 1 <= target <= 10^5

2022-03-30 21:38:02 142

原创 剑指 Offer 66. 构建乘积数组

剑指 Offer 66. 构建乘积数组给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i> 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。> 示例:> 输入: [1,2,3,4,5] > 输出: [120,60,40,30,24]> 提示: 所有元素乘积之和不会溢出 32 位整数> a.length <= 100000

2022-03-29 23:14:17 210

原创 数组中数字出现的次数Ⅰ,Ⅱ(位运算)

数组中数字出现的次数一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]数组中数字出现的次数 II在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4

2022-03-28 20:59:17 826

原创 二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列

2022-03-27 22:50:50 754

原创 两数之和 IV - 输入 BST(两数之和要联想到hash)

两数之和 IV - 输入 BST

2022-03-26 23:38:26 557

原创 二叉搜索树与二叉树的最近公共祖先

二叉搜索树与二叉树的最近公共祖先

2022-03-26 00:31:08 638

原创 剑指 Offer 64. 求1+2+…+n

剑指 Offer 64. 求1+2+…+n

2022-03-25 23:38:00 57

原创 把数组排成最小的数

把数组排成最小的数

2022-03-23 20:16:41 115

空空如也

空空如也

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

TA关注的人

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