随笔分类 -  LeetCode / LeetCode困难速刷

摘要:给你一个披萨,它由 3n 块不同大小的部分组成,现在你和你的朋友们需要按照如下规则来分披萨 每选一块,周围两块会被其他人分掉,请你返回你可以获得的披萨大小总和的最大值。 ###1. 动态规划 容易证明,可以选出任意一个长度为n的不相邻的数字序列 dp[i][j]表示前i个元素中,选择不相邻的j个元素 阅读全文
posted @ 2023-08-18 02:38 失控D大白兔
摘要:给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: 'A' (表示苹果)和 '.' (表示空白格子)。 你需要切披萨 k-1 次,得到 k 块披萨并送给别人。 切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。 如果垂直 阅读全文
posted @ 2023-08-17 01:06 失控D大白兔
摘要:一个整数的质数分数等于 x 不同质因子的数目。比方说,300 的质数分数为 3 ,因为 300 = 2 * 2 * 3 * 5 * 5 给你一个长度为 n 的正整数数组 nums 和一个整数 k 。 一开始,你的分数为 1 。你可以进行以下操作至多 k 次,目标是使你的分数最大: 选择一个之前没有选 阅读全文
posted @ 2023-08-14 17:16 失控D大白兔
摘要:给你一个长度为 n 的二维整数数组 items 和一个整数 k 。 items[i] = [profiti, categoryi],其中 profiti 和 categoryi 分别表示第 i 个项目的利润和类别 现定义 items 的 子序列的优雅度 可以用 total_profit + dist 阅读全文
posted @ 2023-08-10 15:37 失控D大白兔
摘要:给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径数字和的最小值。 非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。 ###1. 动态规划 ``` class Solution { public: int m 阅读全文
posted @ 2023-08-10 01:25 失控D大白兔
摘要:给一个nxn的二维矩阵grid * grid[r][c] = 1 ,表示一个存在小偷的单元格 * grid[r][c] = 0 ,则表示一个空单元格 每个单元格的安全系数为离所有小偷曼哈顿距离的最小值 (1,1)到(n,n)路径的安全系数为所有单元格安全系数最小值 求一条最大安全系数路径 ###1. 阅读全文
posted @ 2023-08-10 01:24 失控D大白兔
摘要:给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒,对于所有下标 0 & nums1, vector& nums2, int x) { int n = nums1.size(); int sum = accumulate(nums1.begin(),nums1.end( 阅读全文
posted @ 2023-08-09 19:04 失控D大白兔
摘要:在二维网格 grid 上,有 4 种类型的方格: * 1 表示起始方格。且只有一个起始方格。 * 2 表示结束方格,且只有一个结束方格。 * 0 表示我们可以走过的空方格。 * -1 表示我们无法跨越的障碍。 返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目。 每一个无 阅读全文
posted @ 2023-08-04 02:10 失控D大白兔
摘要:给你两个正整数 low 和 high ,都用字符串表示,请你统计闭区间 [low, high] 内的步进数字数目 如果一个整数相邻数位之间差的绝对值都恰好是 1 ,那么这个数字被称为步进数字 请你返回一个整数,表示闭区间 [low, high] 之间步进数字的数目 ###1. 数位dp 本质上就是动 阅读全文
posted @ 2023-08-02 01:43 失控D大白兔
摘要:给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n 。同时给你一个二维整数数组 relations记录每门课程的先修课程 请你根据以下规则算出完成所有课程所需要的最少月份数: 如果一门课的所有先修课都已经完成,你可以在任意时间开始这门课程。 你可以同时上任意门课程,请你返回完成所有课程所需 阅读全文
posted @ 2023-07-31 16:08 失控D大白兔
摘要:这里有 n 门不同的在线课程,按从 1 到 n 编号。给你一个数组 courses 其中 courses[i] = [durationi, lastDayi] 表示第 i 门课将会 持续 上 durationi 天课,并且必须在不晚于 lastDayi 的时候完成。 你的学期从第 1 天开始。且不能 阅读全文
posted @ 2023-07-31 15:42 失控D大白兔
摘要:给你两个下标从 0 开始的数组 nums1 和 nums2 ,和一个二维数组 queries 表示一些操作。总共有 3 种类型的操作: * 操作类型 1 为 queries[i] = [1, l, r] 。你需要将 nums1 从下标 l 到下标 r 的所有 0 反转成 1 或将 1 反转成 0 。 阅读全文
posted @ 2023-07-27 03:12 失控D大白兔
摘要:找出满足 u & parent, string s) { //重新排列形成回文串,表示奇数次的字符最多存在一个 //首先根据静态索引构建树,这里直接建图 int n = parent.size(); vector> graph(n); for(int i=1;i m;//记录根节点到子节点路径状态个 阅读全文
posted @ 2023-07-25 03:46 失控D大白兔
摘要:给你一个下标从 0 开始、长度为 n 的数组 usageLimits 。 你的任务是使用从 0 到 n - 1 的数字创建若干组,并确保每个数字 i 在 所有组 中使用的次数总共不超过 usageLimits[i] 次。此外,还必须满足以下条件: * 每个组必须由 不同 的数字组成,也就是说,单个组 阅读全文
posted @ 2023-07-24 03:03 失控D大白兔
摘要:你一个数组 points 和一个整数 k 。数组中每个元素都表示二维平面上的点的坐标,并按照横坐标 x 的值从小到大排序。 也就是说 points[i] = [xi, yi] ,并且在 1 >& points, int k) { deque q; int n = points.size(); int 阅读全文
posted @ 2023-07-21 01:37 失控D大白兔
摘要:给定一个非负整数数组 A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组。 返回 A 的正方形排列的数目。两个排列 A1 和 A2 不同的充要条件是存在某个索引 i,使得 A1[i] != A2[i]。 ###1. 回溯法 ``` class Solution { public 阅读全文
posted @ 2023-07-20 23:42 失控D大白兔
摘要:给你一个二维整数数组 intervals ,其中 intervals[i] = [lefti, righti] 表示第 i 个区间开始于 lefti 、结束于 righti(包含两侧取值,闭区间)。 区间的长度定义为区间中包含的整数数目,更正式地表达是 righti - lefti + 1 。 再给 阅读全文
posted @ 2023-07-19 06:15 失控D大白兔
摘要:给你一个字符串 word 和一个字符串数组 forbidden 。 如果一个字符串不包含 forbidden 中的任何字符串,我们称这个字符串是 合法 的。 请你返回字符串 word 的一个 最长合法子字符串 的长度。 ###1. 哈希 ``` class Solution { public: in 阅读全文
posted @ 2023-07-16 19:57 失控D大白兔
摘要:给定一个无向、连通的树。树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges , edges[i] = [ai, bi]表示树中的节点 ai 和 bi 之间有一条边。 返回长度为 n 的数组 answer ,其中 answer[i] 是树中第 i 个节 阅读全文
posted @ 2023-07-16 03:17 失控D大白兔
摘要:一个长度为 n 下标从 0 开始的整数数组 arr 的 不平衡数字 定义为,在 sarr = sorted(arr) 数组中,满足以下条件的下标数目: * 0 1 这里,sorted(arr) 表示将数组 arr 排序后得到的数组。 给你一个下标从 0 开始的整数数组 nums ,请你返回它所有子数 阅读全文
posted @ 2023-07-08 22:18 失控D大白兔