自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 电话号码的组合

电话号码的字母组合中等给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

2023-03-11 19:44:38 602

原创 Java 最小路径和

最小路径和中等给定一个包含非负整数的mxn网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:输出:7解释:因为路径 1→3→1→1→1 的总和最小。示例 2:输入:输出:12。

2023-03-10 22:14:20 674 1

原创 Java 不同路径

不同路径中等一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:输出:28示例 2:输入:输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右 -> 向下示例 3:输入:输出:28。

2023-03-10 21:59:11 669

原创 Java 超级质数

例:373是质数,3,7,3每一位也都是质数,37,73也都是指数,此时已经满足最大长度-1,且都是质数,符合超级指数定义,因为373在最开始就已经判断,所以只要判断到最大长度-1位的数都是质数即可。的每位数字都是质数, 而且每两个相邻的数字组成的两位 数是质数, 而且每三位相邻的数字组成的三位数是质数, 依次类推, 如果每相 邻的 k。判断一个数是否为质数,是则在比较每一位是否为质数,是则在比较每相邻两位是否为质数,直到数的最大长度-1停止。看成一个字符串, 则这个超级质数的每个子串都是质 数。

2023-02-17 15:57:43 471

原创 Java 剑指 Offer II 078. 合并排序链表

剑指 Offer II 078. 合并排序链表困难给定一个链表数组,每个链表都已经按升序排列。请将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:输出:解释:链表数组如下:1->4->5,1->3->4,2->6将它们合并到一个有序链表中得到。示例 2:输入:lists = []输出:[]示例 3:输入:输出:[]

2023-02-16 10:35:22 224

原创 Java 在二叉树中增加一行

623. 在二叉树中增加一行中等给定一个二叉树的根root和两个整数val和depth,在给定的深度depth处添加一个值为val的节点行。注意,根节点root位于深度1。加法规则如下:给定整数depth,对于深度为depth - 1的每个非空树节点cur,创建两个值为val的树节点作为cur的左子树根和右子树根。cur原来的左子树应该是新的左子树根的左子树。cur原来的右子树应该是新的右子树根的右子树。如果depth == 1意味着。

2023-02-15 10:44:49 421

原创 Java 二叉搜索树中的中序后继

剑指 Offer II 053. 二叉搜索树中的中序后继中等给定一棵二叉搜索树和其中的一个节点p,找到该节点在树中的中序后继。如果节点没有中序后继,请返回null。节点p的后继是值比p.val大的节点中键值最小的节点,即按中序遍历的顺序节点p的下一个节点。示例 1:输入:输出:2解释:这里 1 的中序后继是 2。请注意 p 和返回值都应是 TreeNode 类型。

2023-02-13 10:16:36 49

转载 Java 二叉树剪枝

二叉树剪枝中等给你二叉树的根结点root,此外树的每个结点的值要么是0,要么是1。返回移除了所有不包含1的子树的原二叉树。节点node的子树为node本身加上所有node的后代。示例 1:输入:输出:解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。

2023-02-10 09:36:26 133

原创 Java 验证二叉搜索树

验证二叉搜索树中等给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。有效二叉搜索树定义如下:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:输出:true示例 2:输入:输出:false解释:根节点的值是 5 ,但是右子节点的值是 4。

2023-02-09 10:01:42 404

原创 Java 二叉搜索树中第K小的元素

二叉搜索树中第K小的元素中等给定一个二叉搜索树的根节点root,和一个整数k,请你设计一个算法查找其中第k个最小元素(从 1 开始计数)。示例 1:输入:输出:1示例 2:输入:输出:3。

2023-02-08 19:40:35 108

原创 Java 最接近原点的 K 个点

最接近原点的 K 个点中等给定一个数组points,其中i, yi表示X-Y平面上的一个点,并且是一个整数k,返回离原点(0,0)最近的k个点。这里,平面上两点之间的距离是欧几里德距离√(x1- x22+ (y1- y22 )。你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。示例 1:输入:输出:[[-2,2]]解释:(1, 3) 和原点之间的距离为 sqrt(10),

2023-02-07 10:04:10 302

原创 Java 填充每个节点的下一个右侧节点指针 II

填充每个节点的下一个右侧节点指针 II中等给定一个二叉树:int val;Node *left;Node *next;填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为NULL。初始状态下,所有 next 指针都被设置为NULL。示例 1:输入输出:解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。

2023-02-06 11:56:40 312

原创 Java 前 K 个高频元素

前 K 个高频元素中等给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。示例 1:输入:输出:[1,2]示例 2:输入:输出:[1]

2023-02-05 09:17:51 200

原创 Java 删除链表中的节点

删除链表中的节点中等有一个单链表的head,我们想删除它其中的一个节点node。给你一个需要删除的节点node。你将无法访问第一个节点head。链表的所有值都是唯一的,并且保证给定的节点node不是链表中的最后一个节点。删除给定的节点。注意,删除节点并不是指从内存中删除它。这里的意思是:给定节点的值不应该存在于链表中。链表中的节点数应该减少 1。node前面的所有值顺序相同。node后面的所有值顺序相同。自定义测试:对于输入,你应该提供整个链表。

2023-01-31 09:13:00 1297

原创 Java 完全二叉树的节点个数

完全二叉树的节点个数中等给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第h层,则该层包含1~ 2h 个节点。示例 1:输入:输出:6示例 2:输入:root = []输出:0示例 3:输入:root = [1]输出:1。

2023-01-27 14:23:35 172

翻译 Java 二叉树的层序遍历 II

二叉树的层序遍历 II中等给你二叉树的根节点root,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)示例 1:输入:输出:示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]

2023-01-20 11:14:35 83

原创 Java 二叉树的中序遍历

二叉树的中序遍历简单给定一个二叉树的根节点root,返回它的中序遍历。示例 1:输入:输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]

2023-01-19 21:23:28 567

原创 Java 搜索二维矩阵 II

搜索二维矩阵 II中等编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:输出:true示例 2:输入:输出:false。

2023-01-18 09:07:00 517

原创 Java 合并K个升序链表

合并K个升序链表困难给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:输出:解释:链表数组如下:1->4->5,1->3->4,2->6将它们合并到一个有序链表中得到。示例 2:输入:lists = []输出:[]示例 3:输入:输出:[]

2023-01-17 09:51:20 484

翻译 Java 删除排序链表中的重复元素 II

删除排序链表中的重复元素 II中等给定一个已排序的链表的头head删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。示例 1:输入:输出:[1,2,5]示例 2:输入:输出:[2,3]

2023-01-16 10:17:07 204

原创 Java 对链表进行插入排序

对链表进行插入排序中等给定单个链表的头head,使用插入排序对链表进行排序,并返回排序后链表的头。插入排序算法的步骤:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。下面是插入排序算法的一个图形示例。部分排序的列表(黑色)最初只包含列表中的第一个元素。每次迭代时,从输入数据中删除一个元素(红色),并就地插入已排序的列表中。

2023-01-15 11:54:54 380 1

原创 Java K 个一组翻转链表

K 个一组翻转链表困难给你链表的头节点head,每k个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

2023-01-14 10:36:31 1123

原创 Java 逆波兰表达式求值

逆波兰表达式求值给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为'+''-''*'和'/'。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是向零截断。表达式中不含除零运算。输入是一个根据逆波兰表示法表示的算术表达式。答案及所有中间计算结果可以用32 位整数表示。

2023-01-12 13:51:01 227

翻译 Java 删除链表的倒数第 N 个结点

删除链表的倒数第 N 个结点给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例 1:输入:输出:[1,2,3,5]示例 2:输入:输出:[]示例 3:输入:输出:[1]

2023-01-11 09:41:28 329

原创 Java 打家劫舍

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

2023-01-10 05:44:06 61

原创 Java 旋转图像

旋转图像给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

2023-01-09 09:46:49 655

原创 Java 两数相除

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。本题中,如果除法结果溢出,则返回 231 − 1。将两数相除,要求不使用乘法、除法和 mod 运算符。被除数和除数均为 32 位有符号整数。整数除法的结果应当截去(给定两个整数,被除数。

2023-01-08 09:34:52 1195

原创 Java 找不同

找不同给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。示例 1:输入:输出:"e"解释:'e' 是那个被添加的字母。示例 2:输入:输出:"y"示例 3:输入:s = "",t = "输出:"t"

2023-01-07 10:50:23 89

原创 Java 只出现一次的数字 III

只出现一次的数字 III给你一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。你可以按任意顺序返回答案。你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。示例 1:输入:输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:输出:[-1,0]示例 3:输入:输出:[1,0]

2023-01-06 10:36:09 101

原创 Java 找出字符串中第一个匹配项的下标

找出字符串中第一个匹配项的下标给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。示例 1:输入:输出:0解释:"sad" 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。示例 2:输入:输出:-1解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1。

2023-01-05 10:35:17 929

原创 Java 寻找两个正序数组的中位数

寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为。示例 1:输入:输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。

2023-01-03 22:22:01 278

原创 Java 缺失的第一个正数

给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。321。

2023-01-02 13:29:50 166

原创 Java 第几天

20002000 年的 11 月 11 日,是那一年的第 11 天。那么,20002000 年的 55 月 44 日,是那一年的第几天?

2023-01-01 20:12:25 92

原创 Java 整数反转

给你一个 32 位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围,就返回 0。

2022-12-30 20:15:24 893

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

请你找出给定目标值在数组中的开始位置和结束位置。loc[1] = -1,找到则记录下标退出循环。loc[0] = -1,找到则记录下标退出循环。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。

2022-12-29 17:35:31 1423

原创 Java 空间

小蓝准备用 256MB256MB 的内存空间开一个数组,数组的每个元素都是 3232 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB256MB 的空间可以存储多少个 3232 位二进制整数?

2022-12-29 13:08:10 47

原创 Java 4的幂

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回true;否则,返回false。整数n是 4 的幂次方需满足:存在整数x使得n == 4xn = 16truen = 5falsen = 1true。

2022-12-28 01:27:46 51

原创 Java 两个数组的交集2

给你两个整数数组nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。[2,2][4,9]

2022-12-27 02:21:23 615

原创 Java 各位相加

用三次循环把出现第一次相加后可能出现两位数进行二次循环,再把二次循环可能相加后可能出现的两位数在第三次循环归位。199第一次:1+9=10+9=19 第二次1+9=10 第三次1+0=1最终结果为1。19 第一次: 1+9=10 第二次 1+0=1 在第二次得出答案。,反复将各个位上的数字相加,直到结果为一位数。之所以用三次是防止例Ⅰ出现的情况。是一位数,所以返回 2。

2022-12-24 00:45:07 789

原创 Java 加一

给定一个由组成的数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储数字。你可以假设除了整数 0 之外,这个整数不会以零开头。[1,2,4]输入数组表示数字 123。[4,3,2,2]输入数组表示数字 4321。[1][1,0,0]

2022-12-23 00:31:10 218

空空如也

空空如也

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

TA关注的人

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