自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EasyExcel动态头导出

这段时间的项目中需要导出动态表格。根据所选的参数导出对应的字段内容下图所示选择下面几个tab页就需要导出对应的表头字段下面为具体实现的效果。表头样式可以通过EasyExcel提供的方法自定义。

2023-04-27 17:41:52 7329 4

原创 shardingsphere 集成 SpringBoot 批量更新失败

在近期的项目中引入了 shardingSphere 分库分表,排查过后发现失败的原因是分库分表字段未匹配。我们举个栗子,我们这边分库分表的字段为 projectId。正常来说只要有传入 projectId 作为查询条件中的拦截器会自动去根据我们的分库分表规则进行拼接新的sql语句。但实际上根据测试结果所得发现只有在第一次foreach时才会更加分库分表规则进行对sql进行自动拼接。错误如下图代码所示:" > updateset" > updateset" > updateset。

2023-04-27 16:43:43 1185

原创 22-04-14 最富有客户的资产总量

1672. 最富有客户的资产总量 难度[简单]给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3

2022-04-14 11:16:01 248

原创 22-04-12 写字符串需要的行数

806. 写字符串需要的行数 难度[简单]我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组 widths ,这个数组 widths[0] 代表 ‘a’ 需要的单位, widths[1] 代表 ‘b’ 需要的单位,…, widths[25] 代表 ‘z’ 需要的单位。现在回答两个问题:至少多少行能放下

2022-04-12 14:36:11 144

原创 22-04-11 统计各位数字都不同的数字个数

357. 统计各位数字都不同的数字个数 难度[中等]给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。示例 2:输入:n = 0输出:1提示:0 <= n <= 8来源:力扣(LeetCode)链接:https://leet

2022-04-11 14:37:20 151

原创 22-04-10 唯一摩尔斯密码词

804. 唯一摩尔斯密码词 难度[简单]国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:‘a’ 对应 “.-” ,‘b’ 对应 “-…” ,‘c’ 对应 “-.-.” ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","-

2022-04-10 14:46:58 112

原创 22-04-07 旋转字符串

796. 旋转字符串 难度[简单]给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。s 的 旋转操作 就是将 s 最左边的字符移动到最右边。例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。示例 1:输入: s = "abcde", goal = "cdeab"输出: true示例 2:

2022-04-07 15:06:46 232

原创 22-04-05 二进制表示中质数个计算置位

二进制表示中质数个计算置位762. 二进制表示中质数个计算置位 难度[简单]给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数。计算置位位数 就是二进制表示中 1 的个数。例如, 21 的二进制表示 10101 有 3 个计算置位。示例 1:输入:left = 6, right = 10输出:4解释:6 -> 110 (2

2022-04-05 13:46:31 90

转载 22-04-04 区域和检索 - 数组可修改

307. 区域和检索 - 数组可修改 难度[中等]给你一个数组 nums ,请你完成两类查询。其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 ,其中 left <= right实现 NumArray 类:NumArray(int[] nums) 用

2022-04-04 12:27:00 79

原创 22-04-03 寻找比目标字母大的最小字母

744. 寻找比目标字母大的最小字母 难度[简单]给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’示例 1:输入: letters = ["c", "f", "j"],target = "a"输出

2022-04-03 15:22:15 78

原创 22-04-02 强密码检验器

强密码检验器420. 强密码检验器 难度[困难]如果一个密码满足下述所有条件,则认为这个密码是强密码:由至少 6 个,至多 20 个字符组成。至少包含 一个小写 字母,一个大写 字母,和 一个数字 。同一字符 不能 连续出现三次 (比如 “…aaa…” 是不允许的, 但是 “…aa…a…” 如果满足其他条件也可以算是强密码)。给你一个字符串 password ,返回 将 password 修改到满足强密码条件需要的最少修改步数。如果 password 已经是强密码

2022-04-02 13:51:26 151

原创 22-04-01

954. 二倍数对数组 难度[中等]给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。示例 1:输入:arr = [3,1,3,6]输出:false示例 2:输入:arr = [2,1,2,6]输出:false示例 3:输入:arr = [4,-2,2,

2022-04-01 14:03:39 64

原创 22-03-31 自除数

自除数728. 自除数 难度[简单]自除数 是指可以被它包含的每一位数整除的数。例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。自除数 不允许包含 0 。给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。示例 1:输入:left = 1, right = 22输出:[1,

2022-03-31 12:20:59 344

原创 22-03-29 考试的最大困扰度

2024. 考试的最大困扰度 难度[中等]一位老师正在出一场由 n 道判断题构成的考试,每道题的答案为 true (用 ‘T’ 表示)或者 false (用 ‘F’ 表示)。老师想增加学生对自己做出答案的不确定性,方法是 最大化 有 连续相同 结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串 answerKey ,其中 answerKey[i] 是第 i 个问题的

2022-03-29 14:39:01 81

原创 22-03-28 交替位二进制数

693. 交替位二进制数 难度[简单]给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.提示:1 <= n <= 2^31 - 1来源:力扣(LeetCode

2022-03-28 12:43:03 72

原创 22-03-27 找出缺失的观测数据

2028. 找出缺失的观测数据 难度[中等]现有一份 n + m 次投掷单个 六面 骰子的观测数据,骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份,你手上只拿到剩余 m 次投掷的数据。幸好你有之前计算过的这 n + m 次投掷数据的 平均值 。给你一个长度为 m 的整数数组 rolls ,其中 rolls[i] 是第 i 次观测的值。同时给你两个整数 mean 和 n 。返回一个长度为 n 的数组,包含所有缺失的观测数据,且满足这 n + m 次投掷的

2022-03-27 12:53:22 96

原创 22-03-26 棒球比赛

682. 棒球比赛 难度[简单]你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D” - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证

2022-03-26 14:29:47 110

原创 22-03-25 阶乘后的零

172. 阶乘后的零 难度[中等]给定一个整数 n ,返回 n! 结果中尾随零的数量。提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 1示例 1:输入:n = 3输出:0解释:3! = 6 ,不含尾随 0示例 2:输入:n = 5输出:1解释:5! = 120 ,有一个尾随 0示例 3:输入:n = 0输出:0提示:0 <= n <= 10^4来源:力扣(LeetCode)链接:https://le

2022-03-25 13:10:57 315

原创 22-03-24 图片平滑器

661. 图片平滑器 难度[简单]图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。给你一个表示图像灰度的 m x n 整数矩阵 img ,返回对图像的

2022-03-24 13:11:17 78

转载 22-03-23 字典序的第K小数字

440. 字典序的第K小数字 难度[困难]给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字。示例 1:输入: n = 13, k = 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。示例 2:输入: n = 1, k = 1输出: 1提示:1 <= k <= n <= 10^9来源:力扣(LeetCode)链接:https://

2022-03-23 13:55:19 74

原创 22-03-22 如果相邻两个颜色均相同则删除当前颜色

如果相邻两个颜色均相同则删除当前颜色2038. 如果相邻两个颜色均相同则删除当前颜色 难度[中等]总共有 n 个颜色片段排成一列,每个颜色片段要么是 ‘A’ 要么是 ‘B’ 。给你一个长度为 n 的字符串 colors ,其中 colors[i] 表示第 i 个颜色片段的颜色。Alice 和 Bob 在玩一个游戏,他们 轮流 从这个字符串中删除颜色。Ali

2022-03-22 12:15:01 86

原创 22-03-21 两数之和 IV - 输入 BST

653. 两数之和 IV - 输入 BST 难度[简单]给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scVEmxL3-1647838175293)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fb55a0bd-76e7-461e-a63d-3dca62

2022-03-21 12:49:51 226

原创 22-03-19 根据二叉树创建字符串

606. 根据二叉树创建字符串 难度[简单]你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)"解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对

2022-03-19 12:29:18 103

原创 22-03-18 简易银行系统

2043. 简易银行系统 难度[中等]你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款)。银行共有 n 个账户,编号从 1 到 n 。每个账号的初始余额存储在一个下标从 0 开始的整数数组 balance 中,其中第 (i + 1) 个账户的初始余额是 balance[i] 。请你执行所有 有效的 交易。如果满足下面全部条件,则交易 有效 :指定的账户数量在 1 和 n 之间,且取款或者转账需要的钱的总数 小于或者等于 账户余额。实现

2022-03-18 12:59:11 84

原创 22-03-17 词典中最长的单词

720. 词典中最长的单词 难度[简单]给出一个字符串数组 words 组成的一本英语词典。返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。示例 1:输入:words = ["w","wo","wor","worl", "world"]输出:"world"解释: 单词"world"可由"w", "wo", "wor", 和

2022-03-17 12:01:03 130

转载 22-03-16 全 O(1) 的数据结构

432. 全 O(1) 的数据结构 难度[困难]请你设计一个用于存储字符串计数的数据结构,并能够返回计数最小和最大的字符串。实现 AllOne 类:AllOne() 初始化数据结构的对象。inc(String key) 字符串 key 的计数增加 1 。如果数据结构中尚不存在 key ,那么插入计数为 1 的 key 。dec(String key) 字符串 key 的计数减少 1 。如果 key 的计数在减少后为 0 ,那么需要将这个 key从数据结构中删除。测试用例保证:在减少计数前

2022-03-16 13:07:46 74

原创 22-03-15 统计按位或能得到最大值的子集数目

统计按位或能得到最大值的子集数目2044. 统计按位或能得到最大值的子集数目 难度[中等]给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。对数组 a 执行 按位或 ,结果等于 a[0] OR a[1] OR … OR a[a.length

2022-03-15 13:47:31 61

原创 22-03-14 两个列表的最小索引总和

599. 两个列表的最小索引总和 难度[简单]假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。示例 1:输入: list1 = ["Shogun", "Tapioca Express", "Burger King", "KFC"],list2 = ["Piatti", "The Grill a

2022-03-14 12:28:37 76

原创 22-03-12 N 叉树的后序遍历

590. N 叉树的后序遍历今天的简单题,基础的后序遍历递归写法,就不多做描述了class Solution { List<Integer> list = new ArrayList<>(); public List<Integer> postorder(Node root) { dfs(root); return list; } void dfs (Node root) { if (ro

2022-03-12 12:22:36 469

原创 22-03-10 N 叉树的前序遍历

589. N 叉树的前序遍历今天的简单题,基础的前序遍历递归写法,就不多做描述了class Solution { List<Integer> list = new ArrayList<>(); public List<Integer> preorder(Node root) { dfs(root); return list; } void dfs(Node root) { if (roo

2022-03-10 13:14:31 154

转载 22-03-09 得分最高的最小轮调

得分最高的最小轮调798. 得分最高的最小轮调 难度[困难]给你一个数组 nums,我们可以将它按一个非负整数 k 进行轮调,这样可以使数组变为 [nums[k], nums[k + 1], … nums[nums.length - 1], nums[0], nums[1], …, nums[k-1]] 的形式。此后,任何值小于或等于其索引的项都可以记作一分。例如,数组为 nums = [2,4,1,3,0],我们按 k = 2 进

2022-03-09 12:53:08 106

原创 22-03-08 蜡烛之间的盘子

蜡烛之间的盘子2055. 蜡烛之间的盘子 难度[中等]给你一个长桌子,桌子上盘子和蜡烛排成一列。给你一个下标从 0 开始的字符串 s ,它只包含字符 ‘’ 和 ‘|’ ,其中 '’ 表示一个 盘子 ,’|’ 表示一支 蜡烛 。同时给你一个下标从 0 开始的二维整数数组 queries ,其中 queries[i] = [lefti, righti] 表示 子字符串 s[lefti…righti] (包含左右端点的字符)。对于每个查询,你需要找到 子字符串中 在 两支蜡烛之间 的盘子的 数目 。

2022-03-08 14:23:50 158

原创 22-03-07 七进制数

七进制数504. 七进制数 难度[简单]给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。示例 1:输入: num = 100输出: "202"示例 2:输入: num = -7输出: "-10"提示:10^7 <= num <= 10^7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/base-7著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一:

2022-03-07 15:56:03 173

原创 22-03-06 适合打劫银行的日子

适合打劫银行的日子2100. 适合打劫银行的日子 难度[中等]你和一群强盗准备打劫银行。给你一个下标从 0 开始的整数数组 security ,其中 security[i] 是第 i 天执勤警卫的数量。日子从 0 开始编号。同时给你一个整数 time 。如果第 i 天满足以下所有条件,我们称它为一个适合打劫银行的日子:第 i 天前和后都分别至少有 time 天。第 i 天前连续 time 天警卫数目都是非递增的。第 i 天后连续 time 天警卫数目都是非递减的。更正式的,第 i

2022-03-06 12:59:33 70

原创 22-03-05 最长特殊序列 Ⅰ

521. 最长特殊序列 Ⅰ 难度[简单]给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列  的长度。如果不存在,则返回 -1 。「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) 。字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。例如,“abc” 是 “aebdc” 的子序列,因为删除 “

2022-03-05 12:35:49 58

原创 22-03-04 子数组范围和

2104. 子数组范围和 难度[中等]给你一个整数数组 nums 。nums 中,子数组的 范围 是子数组中最大元素和最小元素的差值。返回 nums 中 所有 子数组范围的 和 。子数组是数组中一个连续 非空 的元素序列。示例 1:输入:nums = [1,2,3]输出:4解释:nums 的 6 个子数组如下所示:[1],范围 = 最大 - 最小 = 1 - 1 = 0[2],范围 = 2 - 2 = 0[3],范围 = 3 - 3 = 0[1,2],范围 = 2 - 1 =

2022-03-04 13:06:48 66

原创 22-03-03 各位相加

各位相加258. 各位相加 难度[简单]给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。示例 1:输入: num = 38输出: 2解释: 各位相加的过程为:38 --> 3 + 8 --> 1111 --> 1 + 1 --> 2由于 2 是一位数,所以返回 2。示例 2:输入: num = 0输出: 0提示:0 <= num <= 2^31 - 1来源:力扣(LeetCode)

2022-03-03 14:21:54 62

转载 22-03-02 寻找最近的回文数

564. 寻找最近的回文数 难度[困难]给定一个表示整数的字符串 n ,返回与它最近的回文整数(不包括自身)。如果不止一个,返回较小的那个。“最近的”定义为两个整数差的绝对值最小。示例 1:输入: n = "123"输出: "121"示例 2:输入: n = "1"输出: "0"解释: 0 和 2是最近的回文,但我们返回最小的,也就是 0。提示:1 <= n.length <= 18n 只由数字组成n 不含前导 0n&nbs

2022-03-02 15:21:58 124

原创 22-03-01 字形变换

6. Z 字形变换 难度[中等]将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s,

2022-03-01 16:38:41 78

原创 22-02-27 最优除法

553. 最优除法 难度[中等]给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。示例:输入: [1000,100,10,2]输出: "1000/(100/10/2)"解释:1000/(100/10/2) = 1000/((100/10)/2) =

2022-02-27 13:40:50 74

空空如也

空空如也

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

TA关注的人

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