自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【LeetCode】2435. 矩阵中和能被 K 整除的路径(DP)

给你一个下标从 0 开始的 m x n 整数矩阵 grid 和一个整数 k。你从起点 (0, 0) 出发,每一步只能往 下 或者往 右 ,你想要到达终点 (m - 1, n - 1)。请你返回路径和能被 k 整除的路径数目,由于答案可能很大,返回答案对 109 + 7 取余 的结果。

2024-07-14 17:29:49 420

原创 【C++学习记录】std::sort()

-

2024-05-04 12:01:25 457

原创 【LeetCode每日一题】2462. 雇佣 K 位工人的总代价

给你一个下标从 0 开始的整数数组 costs ,其中 costs[i] 是雇佣第 i 位工人的代价。同时给你两个整数 k 和 candidates 。我们想根据以下规则恰好雇佣 k 位工人

2024-05-01 12:08:53 126

原创 【C++学习记录】二分查找lower_bound()和upper_bound()中的自定义比较函数

在lc上刷题的时候遇到了upper_bound()自定义cmp的问题,遂记录下二者的区别。

2024-04-26 22:11:43 766

原创 【LeetCode热题100】208. 实现 Trie (前缀树)(图论)

Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:

2024-04-18 19:22:46 296

原创 【LeetCode热题100】207. 课程表(图论)

你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。

2024-04-18 18:06:59 306

原创 【LeetCode热题100】994. 腐烂的橘子(图论)

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

2024-04-18 17:31:34 441

原创 【LeetCode热题100】200. 岛屿数量(图论)

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

2024-04-18 17:27:46 296

原创 【LeetCode热题100】287. 寻找重复数(技巧)

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

2024-04-14 18:42:31 346

原创 【LeetCode热题100】31. 下一个排列(技巧)

整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。

2024-04-14 18:03:14 271

原创 【LeetCode热题100】75. 颜色分类(技巧)

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,**原地**对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。

2024-04-14 17:59:03 314

原创 【LeetCode热题100】169. 多数元素(技巧)

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。

2024-04-14 17:34:16 203

原创 【LeetCode热题100】136. 只出现一次的数字(技巧)

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。简单示例 1 :输入:nums = [2,2,1]输出:1示例 2 :输入:nums = [4,1,2,1,2]输出:4示例 3 :输入:nums = [1]输出:1提示:六.题目总结–

2024-04-14 17:31:08 181

原创 【LeetCode热题100】763. 划分字母区间(贪心)

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。

2024-04-13 19:47:10 582

原创 【LeetCode热题100】45. 跳跃游戏 II(贪心)

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:- 0

2024-04-13 19:29:50 827

原创 【LeetCode热题100】55. 跳跃游戏(贪心)

给你一个非负整数数组 nums ,你最初位于数组的 **第一个下标** 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达**最后一个下标**,如果可以,返回 true ;否则,返回 false 。

2024-04-13 19:25:48 340

原创 【LeetCode热题100】121. 买卖股票的最佳时机(贪心)

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

2024-04-13 19:23:01 269

原创 【LeetCode热题100】53. 最大子数组和(数组)

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。

2024-04-11 19:04:08 840

原创 【LeetCode热题100】56. 合并区间(数组)

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

2024-04-11 18:58:25 335

原创 【LeetCode热题100】189. 轮转数组(数组)

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

2024-04-11 18:55:43 324

原创 【LeetCode热题100】238. 除自身以外数组的乘积(数组)

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

2024-04-11 18:50:09 333

原创 【LeetCode热题100】41. 缺失的第一个正数(数组)

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

2024-04-11 18:46:37 302

原创 【LeetCode热题100】152. 乘积最大子数组(动态规划)

给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 **32-位** 整数。

2024-04-10 15:53:53 412

原创 【LeetCode热题100】300. 最长递增子序列(动态规划)

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

2024-04-09 20:26:32 1021

原创 【LeetCode热题100】32. 最长有效括号(动态规划)

给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

2024-04-08 16:33:54 1337

原创 【LeetCode热题100】322. 零钱兑换(动态规划)

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1

2024-04-08 15:32:45 441

原创 【LeetCode热题100】279. 完全平方数(动态规划)

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。

2024-04-08 15:23:57 254

原创 【LeetCode热题100】198. 打家劫舍(动态规划)

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

2024-04-08 15:18:50 368 1

原创 【LeetCode热题100】118. 杨辉三角(动态规划)

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

2024-04-08 15:14:55 336

原创 【LeetCode热题100】70. 爬楼梯(动态规划)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

2024-04-08 15:12:04 193

原创 【LeetCode热题100】4. 寻找两个正序数组的中位数(二分)

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。

2024-04-07 19:13:52 276

原创 【LeetCode热题100】153. 寻找旋转排序数组中的最小值(二分)

已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。你必须设计一个时间复杂度为

2024-04-07 17:00:06 598

原创 【LeetCode热题100】33. 搜索旋转排序数组(二分)

整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0

2024-04-07 16:50:08 537

原创 【LeetCode热题100】34. 在排序数组中查找元素的第一个和最后一个位置(二分)

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。中等示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums = [], ta

2024-04-07 16:44:40 311

原创 【LeetCode热题100】74. 搜索二维矩阵(二分)

给你一个满足下述两条属性的 m x n 整数矩阵:给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。中等示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true示例 2:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13输出:false提示:m == matrix.len

2024-04-07 16:39:38 792

原创 【LeetCode热题100】35. 搜索插入位置(二分)

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。简单示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示:1

2024-04-07 16:31:14 328

原创 【LeetCode热题100】51. N 皇后(回溯)

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。困难示例 1:输入:n = 4输出:[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…Q.”,“Q…”,“…Q”,“.Q…”]]解释:如上图所示,4

2024-04-03 19:11:13 500

原创 【LeetCode热题100】131. 分割回文串(回溯)

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。中等示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]提示:1

2024-04-03 16:18:19 767

原创 【LeetCode热题100】79. 单词搜索(回溯)

1.能传引用传引用2.二维数组初始化:vector used(board.size(), vector(board[0].size()));3.found;j++) {保证了每个点都可作为起始点。

2024-04-02 18:22:27 453

原创 AI与技术美术(TechArt)

-

2024-04-02 14:09:15 1354

空空如也

空空如也

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

TA关注的人

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