自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(251)
  • 资源 (1)
  • 收藏
  • 关注

原创 leetcode0721. 账户合并-medium

输入:accounts = [[“John”, “johnsmith@mail.com”, “john00@mail.com”], [“John”, “johnnybravo@mail.com”], [“John”, “johnsmith@mail.com”, “john_newyork@mail.com”], [“Mary”, “mary@mail.com”]]现在,我们想合并这些账户。合并账户后,按以下格式返回账户:每个账户的第一个元素是名称,其余元素是 按字符 ASCII 顺序排列 的邮箱地址。

2025-06-12 20:15:00 203

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

线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。输入:n = 6, connections = [[0,1],[0,2],[0,3],[1,2],[1,3]]输入:n = 6, connections = [[0,1],[0,2],[0,3],[1,2]]输入:n = 5, connections = [[0,1],[0,2],[3,4],[2,3]]输入:n = 4, connections = [[0,1],[0,2],[1,2]]

2025-06-12 20:00:00 405

原创 leetcode0684. 冗余连接-medium

图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。输入: edges = [[1,2], [2,3], [3,4], [1,4], [1,5]]使用并查集不断合并两个区域,如果某条边连接的是一个联通分量内部的两个点,则是冗余连接。输入: edges = [[1,2], [1,3], [2,3]]树可以看成是一个连通且 无环 的 无向 图。

2025-06-11 20:15:00 195

原创 leetcode1584. 连接所有点的最小费用-medium

连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。输入:points = [[-1000000,-1000000],[1000000,1000000]]输入:points = [[0,0],[2,2],[3,10],[5,2],[7,0]]输入:points = [[0,0],[1,1],[1,0],[-1,1]]输入:points = [[3,12],[-2,5],[-4,1]]

2025-06-11 20:00:00 660

原创 leetcode1034. 边界着色-medium

输入:grid = [[1,1,1],[1,1,1],[1,1,1]], row = 1, col = 1, color = 2。输入:grid = [[1,2,2],[2,3,2]], row = 0, col = 1, color = 3。输入:grid = [[1,1],[1,2]], row = 0, col = 0, color = 3。输出:[[2,2,2],[2,1,2],[2,2,2]]输出:[[1,3,3],[2,3,3]]输出:[[3,3],[3,2]]并返回最终的网格 grid。

2025-06-10 20:15:00 410

原创 leetcode0934. 最短的桥-medium

输入:grid = [[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]岛 是由四面相连的 1 形成的一个最大组,即不会与非组内的任何其他 1 相连。grid 中 恰好存在两座岛。你可以将任意数量的 0 变为 1 ,以使两座岛连接起来,变成 一座岛。输入:grid = [[0,1,0],[0,0,0],[0,0,1]]输入:grid = [[0,1],[1,0]]grid[i][j] 为 0 或 1。返回必须翻转的 0 的最小数目。

2025-06-10 20:00:00 272

原创 洛谷B3874 [GESP202309 六级] 小杨的握手问题-普及/提高-

小杨的班级里共有N名同学,学号从0至N−1。某节课上,老师安排全班同学进行一次握手游戏,具体规则如下:老师安排了一个顺序,让全班N名同学依次进入教室。每位同学进入教室时,需要和且的同学握手。现在,小杨想知道,整个班级总共会进行多少次握手。

2025-06-09 20:15:00 1441

原创 洛谷B3873 [GESP202309 六级] 小杨买饮料-普及-

小杨来到了一家商店,打算购买一些饮料。这家商店总共出售N种饮料,编号从0至N−1,其中编号为i的饮料售价ci​元,容量li​毫升。小杨的需求有如下几点:小杨想要尽可能尝试不同种类的饮料,因此他希望每种饮料至多购买1瓶;小杨很渴,所以他想要购买总容量不低于L的饮料;小杨勤俭节约,所以在1和2的前提下,他希望使用尽可能少的费用。方便起见,你只需要输出最少花费的费用即可。特别地,如果不能满足小杨的要求,则输出。

2025-06-09 20:00:00 752

原创 洛谷P10262 亲朋数-普及/提高-

表示:以第 i 个数字结尾,余数为 j 的子串个数,则该子串只有两种可能,一种是第 i 个字符单独作为子串,第 i 个字符与 以第 i - 1 个字符为结尾的子串拼接。本题 L 长度较大,如果直接统计子串肯定超时,所以需要更高效的方法,考虑到需要统计每个子串是否能被 p 整除。其中 d_i 表示第 i 个数字,然后加上第 i 个字符单独作为子串的情况即可。只对递推后面一个有用,所以可以用更省空间的写法。中的位置不同,记为不同的亲朋数。的倍数,则称该子串为数字串。个连续子串中,亲朋数有“

2025-06-08 20:15:00 899

原创 leetcode2368. 受限条件下可到达节点的数目-medium

输入:n = 7, edges = [[0,1],[0,2],[0,5],[0,4],[3,2],[6,5]], restricted = [4,2,1]输入:n = 7, edges = [[0,1],[1,2],[3,1],[4,0],[0,5],[5,6]], restricted = [4,5]在不访问受限节点的前提下,只有节点 [0,1,2,3] 可以从节点 0 到达。在不访问受限节点的前提下,只有节点 [0,5,6] 可以从节点 0 到达。注意,节点 0 不 会标记为受限节点。

2025-06-08 20:00:00 409

原创 leetcode0987. 二叉树的垂序遍历-hard

对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row + 1, col - 1) 和 (row + 1, col + 1)。树的根结点位于 (0, 0)。输入:root = [3,9,20,null,null,15,7]输出:[[4],[2],[1,5,6],[3],[7]]输出:[[4],[2],[1,5,6],[3],[7]]输入:root = [1,2,3,4,5,6,7]输入:root = [1,2,3,4,6,5,7]输出:[[9],[3,15],[20],[7]]

2025-06-07 20:15:00 429

原创 leetcode1905. 统计子岛屿-medium

输入:grid1 = [[1,0,1,0,1],[1,1,1,1,1],[0,0,0,0,0],[1,1,1,1,1],[1,0,1,0,1]], grid2 = [[0,0,0,0,0],[1,1,1,1,1],[0,1,0,1,0],[0,1,0,1,0],[1,0,0,0,1]]如果 grid2 的一个岛屿,被 grid1 的一个岛屿 完全 包含,也就是说 grid2 中该岛屿的每一个格子都被 grid1 中同一个岛屿完全包含,那么我们称 grid2 中的这个岛屿为 子岛屿。

2025-06-07 20:00:00 340

原创 leetcode1971. 寻找图中是否存在路径-easy

图中的边用一个二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。输入:n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], source = 0, destination = 5。输入:n = 3, edges = [[0,1],[1,2],[2,0]], source = 0, destination = 2。解释:不存在由顶点 0 到顶点 5 的路径.不存在指向顶点自身的边。

2025-06-06 20:15:00 1960

原创 leetcode1609. 奇偶树-meidum

由于 0 层和 2 层上的节点值都是奇数且严格递增,而 1 层和 3 层上的节点值都是偶数且严格递减,因此这是一棵奇偶树。输入:root = [11,8,6,1,3,9,11,30,20,18,16,12,10,4,2,17]二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依此类推。输入:root = [1,10,4,3,null,7,9,12,8,6,null,null,2]输入:root = [5,4,2,3,3,7]3 层:[12,8,6,2]

2025-06-06 20:00:00 1113

原创 leetcode1519. 子树中标签相同的节点数- medium

输入:n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], labels = “abaedcd”节点 1 的标签为 ‘b’ ,节点 1 的子树包含节点 1、4 和 5,但是节点 4、5 的标签与节点 1 不同,故而答案为 1(即,该节点本身)。输入:n = 5, edges = [[0,1],[0,2],[1,3],[0,4]], labels = “aabab”输出:[2,1,1,1,1,1,1]输出:[3,2,1,1,1]输出:[4,2,1,1]

2025-06-05 20:15:00 604

原创 leetcode1457. 二叉树中的伪回文路径-medium

在这些路径中,只有红色和绿色的路径是伪回文路径,因为红色路径 [2,3,3] 存在回文排列 [3,2,3] ,绿色路径 [2,1,1] 存在回文排列 [1,2,1]。解释:上图为给定的二叉树。总共有 3 条从根到叶子的路径:红色路径 [2,3,3] ,绿色路径 [2,1,1] 和路径 [2,3,1]。总共有 3 条从根到叶子的路径:绿色路径 [2,1,1] ,路径 [2,1,3,1] 和路径 [2,1]。输入:root = [2,1,1,1,3,null,null,null,null,null,1]

2025-06-05 20:00:00 354

原创 leetcode1443. 收集树上所有苹果的最少时间-medium

输入:n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,false,false,false,false,false]输入:n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,false,true,false]解释:上图展示了给定的树,其中红色节点表示有苹果。

2025-06-04 20:15:00 963

原创 leetcode0785. 判断二分图-medium

给你一个二维数组 graph ,其中 graph[u] 是一个节点数组,由节点 u 的邻接节点组成。二分图 定义:如果能将一个图的节点集合分割成两个独立的子集 A 和 B ,并使图中的每一条边的两个节点一个来自 A 集合,一个来自 B 集合,就将这个图称为 二分图。输入:graph = [[1,2,3],[0,2],[0,1,3],[0,2]]输入:graph = [[1,3],[0,2],[1,3],[0,2]]如果 graph[u] 包含 v,那么 graph[v] 也会包含 u。

2025-06-04 20:00:00 474

原创 leetcode0690. 员工的重要性-medium

员工 1 自身的重要度是 5 ,他有两个直系下属 2 和 3 ,而且 2 和 3 的重要度均为 3。输入:employees = [[1,5,[2,3]],[2,3,[]],[3,3,[]]], id = 1。employees[i].subordinates 是第 i 名员工的直接下属的 ID 列表。你有一个保存员工信息的数据结构,它包含了员工唯一的 id ,重要度和直系下属的 id。输入:employees = [[1,2,[5]],[5,-3,[]]], id = 5。

2025-06-03 12:00:00 940

原创 leetcode0515. 在每个树行中找最大值-medium

深度优先搜索,如果当前节点是本层的第一个节点,直接保留,否则和本层保留的值对比,大的留下。给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。输入: root = [1,3,2,5,3,null,9]输入: root = [1,2,3]二叉树的节点个数的范围是。输出: [1,3,9]

2025-06-03 07:00:00 706

原创 leetcode0513. 找树左下角的值-meidum

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。输入: [1,2,3,4,null,5,6,null,null,7]深度优先搜索,先左后右,如果当前节点层数大于记录的层数,修改层数和值。输入: root = [2,1,3]假设二叉树中至少有一个节点。二叉树的节点个数的范围是。

2025-06-02 20:15:00 784

原创 leetcdoe0429. N 叉树的层序遍历-medium

输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。输入:root = [1,null,3,2,4,null,5,6]

2025-06-02 20:00:00 450

原创 leetcode0404. 左叶子之和-easy

深度优先搜索,如果叶子节点是左叶子就返回值,否则返回 0,非叶子节点,返回子树的左叶子和。解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。输入: root = [3,9,20,null,null,15,7]给定二叉树的根节点 root ,返回所有左叶子之和。节点数在 [1, 1000] 范围内。输入: root = [1]

2025-06-01 20:15:00 283

原创 leetcode1020. 飞地的数量-medium

给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。输入:grid = [[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]输入:grid = [[0,1,1,0],[0,0,1,0],[0,0,1,0],[0,0,0,0]]解释:有三个 1 被 0 包围。从周围的1开始搜索,将相邻的 1 标记为 0,统计剩余的 1。

2025-06-01 20:00:00 228

原创 leetcode2929. 给小朋友们分糖果 II - medium

解释:总共有 10 种方法分配 3 颗糖果,且每位小朋友的糖果数不超过 3 :(0, 0, 3) ,(0, 1, 2) ,(0, 2, 1) ,(0, 3, 0) ,(1, 0, 2) ,(1, 1, 1) ,(1, 2, 0) ,(2, 0, 1) ,(2, 1, 0) 和 (3, 0, 0)。解释:总共有 3 种方法分配 5 颗糖果,且每位小朋友的糖果数不超过 2 :(1, 2, 2) ,(2, 1, 2) 和 (2, 2, 1)。输入:n = 3, limit = 3。

2025-05-31 20:15:00 1664

原创 leetcode3128. 直角三角形-medium

如果 grid 的 3 个元素的集合中,一个元素与另一个元素在 同一行,并且与第三个元素在 同一列,则该集合是一个 直角三角形。请你返回使用 grid 中的 3 个元素可以构建的 直角三角形 数目,且满足 3 个元素值 都 为 1。有 2 个值为 1 的直角三角形。输入:grid = [[1,0,0,0],[0,1,0,1],[1,0,0,0]]输入:grid = [[0,1,0],[0,1,1],[0,1,0]]输入:grid = [[1,0,1],[1,0,0],[1,0,0]]

2025-05-31 20:00:00 207

原创 leetcode2221. 数组的三角和-medium

对于满足 0 <= i < n - 1 的下标 i ,newNums[i] 赋值 为 (nums[i] + nums[i+1]) % 10 ,% 表示取余运算。否则,创建 一个新的下标从 0 开始的长度为 n - 1 的整数数组 newNums。给你一个下标从 0 开始的整数数组 nums ,其中 nums[i] 是 0 到 9 之间(两者都包含)的一个数字。由于 nums 中只有一个元素,数组的三角和为这个元素自己。输入:nums = [1,2,3,4,5]输入:nums = [5]

2025-05-30 20:15:00 546

原创 leetcode1201. 丑数 III -medium

解释:丑数序列为 2, 4, 6, 8, 10, 11, 12, 13…解释:丑数序列为 2, 3, 4, 6, 8, 9, 10, 12…其中第 4 个是 6。本题数据规模很大,缺乏高效的递推公式,但是答案又是要验证的而且具有连续性,所以可以用二分法。解释:丑数序列为 2, 3, 4, 5, 6, 8, 9, 10…输入:n = 5, a = 2, b = 11, c = 13。输入:n = 3, a = 2, b = 3, c = 5。输入:n = 4, a = 2, b = 3, c = 4。

2025-05-30 20:00:00 1573

原创 leetcode0954. 二倍数对数组-medium

给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。按照绝对值从大到小排序,如果有 2x 和 x 匹配,将 2x 数量减 1,否则 将 x 的 数量加 1,如果最终还有没有匹配的,则返回 false。解释:可以用 [-2,-4] 和 [2,4] 这两组组成 [-2,-4,2,4] 或是 [2,4,-2,-4]

2025-05-29 20:15:00 1810

原创 leetcode0826. 安排工作以达到最大收益-medium

输入: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]输入: difficulty = [85,47,57], profit = [24,66,99], worker = [40,25,25]difficulty[i] 表示第 i 个工作的难度,profit[i] 表示第 i 个工作的收益。解释: 工人被分配的工作难度是 [4,4,6,6] ,分别获得 [20,20,30,30] 的收益。

2025-05-29 20:00:00 1388

原创 leetcode0781. 森林中的兔子-medium

提问其中若干只兔子 “还有多少只兔子与你(指被提问的兔子)颜色相同?” ,将答案收集到一个整数数组 answers 中,其中 answers[i] 是第 i 只兔子的回答。统计每一个数字 i 的频数,i + 1 个 i 可以颜色相同,不足的补齐。因此森林中兔子的最少数量是 5 只:3 只回答的和 2 只没有回答的。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。两只回答了 “1” 的兔子可能有相同的颜色,设为红色。

2025-05-28 20:15:00 229

原创 leetcode0670. 最大交换-medium

给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。直接尝试交换每两位,找到最大的即可。解释: 交换数字2和数字7。解释: 不需要交换。

2025-05-28 20:00:00 284

原创 leetcode0611. 有效三角形的个数-medium

给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。输入: nums = [2,2,3,4]输入: nums = [4,2,3,4]排序,遍历前两条边,第三条边小于它的和。2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)

2025-05-27 20:15:00 452

原创 leetcode0452. 用最少数量的箭引爆气球-medium

墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。输入:points = [[10,16],[2,8],[1,6],[7,12]]输入:points = [[1,2],[3,4],[5,6],[7,8]]输入:points = [[1,2],[2,3],[3,4],[4,5]]-在x = 11处发射箭,击破气球[10,16]和[7,12]。-在x = 6处射出箭,击破气球[2,8]和[1,6]。

2025-05-27 20:00:00 1152

原创 leetcode0435. 无重叠区间-medium

给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi]。例如 [1, 2] 和 [2, 3] 是不重叠的。输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输入: intervals = [ [1,2], [1,2], [1,2] ]输入: intervals = [ [1,2], [2,3] ]解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。解释: 移除 [1,3] 后,剩下的区间没有重叠。

2025-05-26 20:15:00 1107

原创 leetcode0409. 最长回文串-easy

给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的 回文串 的长度。在构造过程中,请注意 区分大小写。比如 “Aa” 不能当做一个回文字符串。只需要统计可以成对出现的字母的个数,最多加上正中间一个非成对出现的。我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解释:可以构造的最长回文串是"a",它的长度是 1。s 只由小写 和/或 大写英文字母组成。输入:s = “abccccdd”输入:s = “a”

2025-05-26 20:00:00 349

原创 leetcode2081. k 镜像数字的和-hard

9 在十进制下为 9 ,二进制下为 1001 ,两者从前往后读和从后往前读都一样。一个 k 镜像数字 指的是一个在十进制和 k 进制下从前往后读和从后往前读都一样的 没有前导 0 的 正 整数。它们的和为 1 + 2 + 4 + 8 + 121 + 151 + 212 = 499。给你进制 k 和一个数字 n ,请你返回 k 镜像数字中 最小 的 n 个数 之和。它们的和为 1 + 3 + 5 + 7 + 9 = 25。输入:k = 2, n = 5。输入:k = 3, n = 7。

2025-05-25 20:15:00 303

原创 leetcode2025. 分割数组的最多方案数-hard

求前缀和,查找前缀和为总和一半的个数,由于改变某个元素时,部分前缀和已经改变,所以需要维持两个前缀和 map,一个是改变的元素之前的map,另一个是之后的 map,然后依次更新两个 map 并统计最大频数。数组变为 [22,4,-33,-20,-15,15,-16,7,19,-10,0,-13,-14]。输入:nums = [22,4,-25,-20,-15,15,-16,7,19,-10,0,-13,-14], k = -33。输入:nums = [2,-1,2], k = 3。有四种方法分割数组。

2025-05-25 20:00:00 838

原创 005 深度优先搜索(DFS)算法详解:图解+代码+经典例题

深度优先搜索(Depth-First Search,DFS)是算法竞赛和面试中最高频的暴力搜索算法之一。其核心思想是“一条路走到黑”,从起点出发,优先探索最深的节点,直到无路可走再回溯,属于回溯算法的基石。

2025-05-24 20:15:00 1387

原创 leetcode2212. 射箭比赛中的最大得分- medium

如果 Alice 向计分为 11 的区域射 0 支箭,但 Bob 向同一个区域射 2 支箭,那么 Bob 得 11 分。输入:numArrows = 9, aliceArrows = [1,1,0,1,0,0,2,1,0,1,2,0]输入:numArrows = 3, aliceArrows = [0,0,1,0,0,0,0,0,0,0,0,2]用枚举法,验证所有可能的情况,记录最大值。输出:[0,0,0,0,1,1,0,0,1,2,3,1]输出:[0,0,0,0,0,0,0,0,1,1,1,0]

2025-05-24 20:00:00 897

c#上传文件和信息.txt

用c#上传同时上传文件和相关信息到服务器,服务器存储文件,并写入数据库,方便查找相关信息,代码比较简单实用,适合修改,欢迎大家参考实用和批评指正,啦啦啦

2019-12-04

空空如也

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

TA关注的人

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