自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CCF CSP 第33次(2024.03)(2_相似度计算_C++)(字符串中字母大小写转换+哈希集合)

CCF CSP 第33次(2024.03)(2_相似度计算_C++)时间限制: 1.0 秒空间限制: 512 MiB题目背景:两个集合的 Jaccard 相似度定义为:Sim(A,B)= ∣A∪B∣/∣A∩B∣​即交集的大小除以并集的大小。当集合 𝐴 和 𝐵完全相同时,𝑆𝑖𝑚(𝐴,𝐵)=1取得最大值;当二者交集为空时,𝑆𝑖𝑚(𝐴,𝐵)=0取得最小值。

2025-03-26 23:10:36 523

原创 LeetCode 热题 100_划分字母区间(80_763_中等_C++)(贪心算法(求并集))

LeetCode 热题 100_划分字母区间(80_763)题目描述:给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串 "ababcc" 能够被分为 ["abab", "cc"],但类似 ["aba", "bcc"] 或 ["ab", "ab", "cc"] 的划分是非法的。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。

2025-03-22 21:58:09 856

原创 CCF CSP 第33次(2024.03)(1_词频统计_C++)

CCF CSP 第33次(2024.03)(1_词频统计_C++)时间限制: 1.0 秒空间限制: 512 MiB题目描述:在学习了文本处理后,小 P 对英语书中的 n 篇文章进行了初步整理。 具体来说,小 P 将所有的英文单词都转化为了整数编号。假设这 n 篇文章中共出现了 m 个不同的单词,则把它们从 1 到 m 进行编号。 这样,每篇文章就简化为了一个整数序列,其中每个数都在 1 到 m 范围内。

2025-03-21 22:07:35 246

原创 LeetCode 热题 100_跳跃游戏 II(79_45_中等_C++)(贪心算法)

LeetCode 热题 100_跳跃游戏 II(79_45)题目描述:给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处: - 0 <= j <= nums[i] - i + j < n返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。

2025-03-20 22:29:43 1036

原创 CCF CSP 第32次(2023.12)(2_因子化简_C++)

CCF CSP 第32次(2023.12)(2_因子化简_C++)时间限制: 2.0 秒空间限制: 512 MiB题目背景:质数(又称“素数”)是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。

2025-03-19 22:19:34 842

原创 LeetCode 热题 100_跳跃游戏(78_55_中等_C++)(贪心算法)

LeetCode 热题 100_跳跃游戏(78_55)题目描述:给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

2025-03-18 12:43:42 545

原创 CCF CSP 第32次(2023.12)(1_仓库规划_C++)

CCF CSP 第32次(2023.12)(1_仓库规划_C++)时间限制:1.0 秒空间限制: 512 MiB题目描述:西西艾弗岛上共有 n 个仓库,依次编号为 1 ⋯ n。每个仓库均有一个 m 维向量的位置编码,用来表示仓库间的物流运转关系。具体来说,每个仓库 i 均可能有一个上级仓库 j,满足:仓库 j 位置编码的每一维均大于仓库 i 位置编码的对应元素。

2025-03-17 22:54:52 809

原创 LeetCode 热题 100_买卖股票的最佳时机(77_121_简单_C++)(动态规划)

LeetCode 热题 100_买卖股票的最佳时机(77_121)题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

2025-03-16 22:34:12 382

原创 CCF CSP 第31次(2023.09)(2_坐标变换(其二)_C++)

CCF CSP 第31次(2023.09)(2_坐标变换(其二)_C++)题目背景:对于平面直角坐标系上的坐标 (x,y),小 P 定义了如下两种操作: 1. 拉伸 k 倍:横坐标 x 变为 kx,纵坐标 y 变为 ky; 2. 旋转 θ:将坐标 (x,y) 绕坐标原点 (0,0) 逆时针旋转 θ 弧度(0≤θ<2π)。易知旋转后的横坐标为xcos⁡θ−ysin⁡θ,纵坐标为 xsin⁡θ+y

2025-03-15 22:49:10 862

原创 LeetCode 热题 100_前 K 个高频元素(75_347_中等_C++)(堆)(哈希表+排序;哈希表+优先队列(小根堆))

LeetCode 热题 100_前 K 个高频元素(73_347)题目描述:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。输入输出样例:示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]

2025-03-14 23:15:29 833

原创 CCF CSP 第31次(2023.09)(1_坐标变换_C++)(先输入再计算;边输入边计算)

CCF CSP 第31次(2023.09)(1_坐标变换_C++) 题目描述:对于平面直角坐标系上的坐标 (x,y),小 P 定义了一个包含 n 个操作的序列 T=(t1,t2,⋯,tn)。其中每个操作 ti(1≤i≤n)包含两个参数 dxi 和 dyi,表示将坐标 (x,y) 平移至 (x+dxi,y+dyi) 处。现给定 m 个初始坐标,试计算对每个坐标 (xj,yj)(1≤j≤m)依次进行 T 中 n 个操作后的最终坐标。

2025-03-13 22:42:36 936

原创 CCF CSP 第30次(2023.05)(2_矩阵运算_C++)(暴力破解)(矩阵相乘)

CCF CSP 第30次(2023.05)(2_矩阵运算_C++)题目背景:Softmax(Q×KT/√d)×V 是 Transformer 中注意力模块的核心算式,其中 Q、K 和 V 均是 n 行 d 列的矩阵,KT 表示矩阵 K 的转置,× 表示矩阵乘法。

2025-03-12 20:16:30 880

原创 LeetCode 热题 100_数组中的第K个最大元素(74_215_中等_C++)(堆)(暴力破解法(将整个数组进行排序);线性时间选择(快速排序:基础版);线性时间选择(快速排序:三路划分))

LeetCode 热题 100_数组中的第K个最大元素(74_215)题目描述:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

2025-03-11 22:52:16 440

原创 LeetCode 热题 100_每日温度(72_739_中等_C++)(栈)(暴力破解;栈(从左到右);栈(从右到左))

LeetCode 热题 100_每日温度(72_739) 题目描述:给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

2025-03-10 19:39:33 1076

原创 LeetCode 热题 100_字符串解码(71_394_中等_C++)(栈)

LeetCode 热题 100_字符串解码(71_394)题目描述:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

2025-03-08 22:32:03 946

原创 LeetCode 热题 100_最小栈(70_155_中等_C++)(栈)(辅助栈)(栈中的push和emplace对比)

LeetCode 热题 100_最小栈(70_155)题目描述:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。

2025-03-03 19:24:54 629

原创 LeetCode 热题 100_寻找两个正序数组的中位数(68_4_困难_C++)(二分查找)(先合并再挑选中位数;划分数组(二分查找))

LeetCode 热题 100_寻找两个正序数组的中位数(68_4) 题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。

2025-03-01 17:35:10 1041

原创 LeetCode 热题 100_有效的括号(69_20_简单_C++)(栈;栈+哈希表(建立左右括号的对应关系))

LeetCode 热题 100_有效的括号(69_20)题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:1、左括号必须用相同类型的右括号闭合。2、左括号必须以正确的顺序闭合。3、每个右括号都有一个对应的相同类型的左括号。

2025-02-28 21:57:35 680

原创 CCF CSP 第30次(2023.05)(1_重复局面_C++)(unordered_map)

CCF CSP 第30次(2023.05)(1_重复局面_C++)题目背景:国际象棋在对局时,同一局面连续或间断出现3次或3次以上,可由任意一方提出和棋。题目描述:国际象棋每一个局面可以用大小为 8×8 的字符数组来表示,其中每一位对应棋盘上的一个格子。六种棋子王、后、车、象、马、兵分别用字母 k、q、r、b、n、p 表示,其中大写字母对应白方、小写字母对应黑方。棋盘上无棋子处用字符 * 表示。两个字符数组的每一位均相同则说明对应同一局面。

2025-02-27 21:52:51 645

原创 CCF CSP (2020.06_1_线性分类器_C++)(暴力破解)

【题目描述】 考虑一个简单的二分类问题——将二维平面上的点分为A和B两类。 训练数据包含 n个点,其中第i个点(1 ≤i≤ n)可以表示为一个三元组(xi,yi,typei),即该点的横坐标、纵坐标和类别。

2025-02-26 21:42:36 302

原创 LeetCode 热题 100_寻找旋转排序数组中的最小值(67_153_中等_C++)(二分查找)

LeetCode 热题 100_寻找旋转排序数组(67_153)题目描述:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1],

2025-02-25 22:46:19 728

原创 LeetCode 热题 100_搜索旋转排序数组(66_33_中等_C++)(二分查找)

LeetCode 热题 100_搜索旋转排序数组(66_33)题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6

2025-02-24 21:48:51 426

原创 LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)

LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34)题目描述:给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

2025-02-22 22:17:37 990

原创 LeetCode 热题 100_搜索二维矩阵(64_74_中等_C++)(二分查找)(暴力破解法;Z字形查找;一次二分查找)

LeetCode 热题 100_搜索二维矩阵(64_74)题目描述:给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

2025-02-21 22:58:22 1023

原创 LeetCode 热题 100_搜索插入位置(63_35_简单_C++)(二分查找)(”>>“ 与 “/” 对比)

LeetCode 热题 100_搜索插入位置(63_35)题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。

2025-02-20 19:23:09 327

原创 LeetCode 热题 100_N 皇后 (62_51_困难_C++)(递归(回溯))

LeetCode 热题 100_N 皇后(62_51)题目描述:按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。

2025-02-19 21:04:05 590

原创 LeetCode 热题 100_分割回文串(61_131_中等_C++)(递归(回溯))(回溯问题使用类成员变量还是函数传参)

LeetCode 热题 100_分割回文串(61_131)题目描述:给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

2025-02-18 22:06:27 933

原创 LeetCode 热题 100_单词搜索(60_79_中等_C++)(深度优先搜索(回溯))(初始化二维vector的大小)

LeetCode 热题 100_单词搜索(60_79)题目描述:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

2025-02-17 18:27:52 877

原创 LeetCode 热题 100_括号生成(59_22_中等_C++)(递归(回溯))

LeetCode 热题 100_括号生成(59_22) 题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

2025-02-15 20:38:58 491

原创 LeetCode 热题 100_组合总和(58_39_中等_C++)(递归(回溯))

LeetCode 热题 100_组合总和(58_39)题目描述:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。

2025-02-14 21:06:26 1259

原创 LeetCode 热题 100_电话号码的字母组合 (57_17_中等_C++)(string(path.begin(),path.end()))

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

2025-01-22 22:56:36 817

原创 LeetCode 热题 100_全排列(55_46_中等_C++)(递归(回溯))

LeetCode 热题 100_两数之和(55_46) 题目描述:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。输入输出样例:示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

2025-01-21 22:56:32 664

原创 LeetCode 热题 100_实现 Trie (前缀树)(54_208_中等_C++)(图;前缀树;字典树)

LeetCode 热题 100_实现 Trie (前缀树)(54_208) 题目描述:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。

2025-01-20 22:51:42 752

原创 LeetCode 热题 100_子集(56_78_中等_C++)(回溯)(ans.clear())

LeetCode热题100_子集(56_78)题目描述:给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。

2025-01-18 22:55:19 826

原创 LeetCode 热题 100_课程表(53_207_中等_C++)(图,拓扑排序)

LeetCode 热题 100_课程表(53_207)题目描述:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。

2025-01-16 22:36:34 811

原创 LeetCode 热题 100_从前序与中序遍历序列构造二叉树(47_105_中等_C++)(二叉树;递归)

LeetCode热题100_从前序与中序遍历序列构造二叉树(47_105)题目描述:给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。

2025-01-14 13:39:35 562

原创 LeetCode 热题 100_二叉树中的最大路径和(50_124_困难_C++)(二叉树;深度优先搜索)

LeetCode 热题 100_二叉树中的最大路径和(50_124)题目描述:二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和。

2025-01-14 00:37:06 640

原创 LeetCode 热题 100_腐烂的橘子(52_994_中等_C++)(图;广度优先遍历(队列))

LeetCode 热题 100_腐烂的橘子(52_994)题目描述:在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。

2025-01-13 01:11:29 790

原创 (LeetCode 热题 100_岛屿数量(51_200_中等_C++)(图;深度优先遍历;广度优先搜索)(pair<int,int>)

LeetCode 热题 100_岛屿数量(51_200)题目描述:给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。

2025-01-11 21:23:52 1012

原创 LeetCode 热题 100_二叉树的最近公共祖先(49_236_中等_C++)(二叉树;深度优先搜索)

LeetCode 热题 100_二叉树的最近公共祖先(49_236)题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

2025-01-10 19:57:29 739

空空如也

空空如也

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

TA关注的人

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