- 博客(80)
- 收藏
- 关注
原创 形式化方法复习
命题逻辑Propositional Logic构造逻辑(Constructive Logic)可满足性SatisfiabilityDPLLPredicate logic谓词逻辑绑定变量自由变量替换Equality and uninterpreted functions theoryEUF等价与未解释函数理论程序等价program equivalence线性算数Linear ArithmeticsFourier-Motzkin Elimination FMESimplex Algorithm单纯形法Bit V
2025-12-12 17:03:36
154
原创 代码随想录
双端队列保留的元素是:在窗口,且递减元素的下标,舍弃的是不在窗口的和比新来的小的。窗口收缩取决于窗口内水果的种类:(哈希表实现,记录其数量)2.水果大于2时,收缩窗口,直到水果小于2。(新来的大,则一定先于该时间线且小于该值的 被考虑)1.水果小于等于2时,一直遍历添加。考虑溢出问题:变成除法(二分查找解决)寻找到目标元素后,增加一个判断即可。标记**双端队列维护当前窗口最大值。滑动窗口(标记-寻找更简洁方法)前缀和(行和列分别记录前缀和)用一个数组-记录所取数是否取过。二叉搜索-寻找最左,最右元素。
2025-03-05 20:44:09
737
原创 复试机试-动态规划
转移方程:dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1;dp[i][j]:表示右下角为i,j的正方形最大边长。
2025-03-04 16:17:33
257
原创 机试复试——数组
1.使用strlen时,要注意头文件 #include <string.h>,作用:从开始到遇到第一个’\0’,要注意添加'\0'sprintf函数包含在头文件#include<stdio.h>中,作用是。如果数组中有负数,修改比较函数。字符串反转+模拟二进制加法。2.famx头文件 #解题思路:类似于异或。遍历,判断是否相差1。
2025-02-26 17:40:08
187
原创 LeetCode热题100—98
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。假设 nums 只有 一个重复的整数 ,返回 这个重复的数。287. 寻找重复数。
2025-02-16 21:55:25
153
原创 LeetCode热题100—96
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。
2025-02-16 21:38:31
140
原创 LeetCode热题100—95
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2025-02-16 21:05:20
141
原创 LeetCode热题100—94
除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2025-02-16 19:44:01
200
原创 LeetCode热题100—86
给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续。(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。152. 乘积最大子数组。
2025-02-16 18:51:08
112
原创 LeetCode热题100—85
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。300. 最长递增子序列。
2025-02-16 17:14:11
191
原创 LeetCode热题100—83
计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。你可以认为每种硬币的数量是无限的。
2025-02-16 15:36:30
600
原创 LeetCode热题100—82
279. 完全平方数给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例 1:输入:n = 12输出:3 解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2解释:13 = 4 + 9状态定义: 表示组成整数 所需的最少完全平方数的个数。状态转移方程:对于每个完全平方数 ,如果 ,则:复制dp[i] = min
2025-02-16 13:08:12
164
原创 LeetCode热题100—81
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
2025-02-16 12:32:22
124
原创 LeetCode热题100—80
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。
2025-02-16 12:19:59
96
原创 LeetCode热题100—77
题解:从数组的末尾开始,逐步向前寻找能够跳到当前位置的最远点。每次找到一个可以跳到当前位置的点后,就将该点作为新的目标位置,并增加跳跃次数。通过这种方式,可以确保每次跳跃都是最优的,从而得到最少的跳跃次数。每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。45. 跳跃游戏 II。
2025-02-16 11:59:11
233
原创 LeetCode热题100—76
无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。如果能到某个位置,那么前面所有位置都可以抵达。给你一个非负整数数组。
2025-02-15 23:26:49
116
原创 LeetCode热题100—75
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。121. 买卖股票的最佳时机。
2025-02-15 23:11:13
162
原创 LeetCode热题100—73
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。347. 前 K 个高频元素。
2025-02-15 22:48:34
124
原创 LeetCode热题100—67
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。
2025-02-15 17:45:35
197
原创 LeetCode热题100—65
它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。153. 寻找旋转排序数组中的最小值。的数组,预先按照升序排列,经由。你必须设计一个时间复杂度为。
2025-02-15 17:25:44
195
原创 LeetCode热题100—64
在传递给函数之前,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,7,0,1,2]。输入:nums = [4,5,6,7,0,1,2], target = 0。二分查找+特殊判断条件。
2025-02-15 15:23:23
154
原创 LeetCode热题100—63
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。如果数组中不存在目标值 target,返回 [-1, -1]。34. 在排序数组中查找元素的第一个和最后一个位置。
2025-02-15 13:40:53
163
原创 LeetCode热题100—62
给你一个整数 target ,如果 target 在矩阵中,返回 true;否则,返回 false。每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。
2025-02-15 13:11:55
196
原创 LeetCode热题100—61
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。35. 搜索插入位置。
2025-02-15 12:19:18
102
原创 LeetCode热题100—57
输出:["((()))","(()())","(())()","()(())","()()()"]数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
2025-02-15 11:24:04
207
原创 LeetCode热题100—56
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。输入:candidates = [2,3,6,7], target = 7。输入: candidates = [2,3,5], target = 8。输出: [[2,2,2,2],[2,3,3],[3,5]]输出:[[2,2,3],[7]]
2025-02-15 10:49:43
156
原创 LeetCode热题100—54
给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
2025-02-15 10:20:38
99
原创 LeetCode热题100—53
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。思路:大问题变成小问题,3!先固定0位置,固定1位置......输入:nums = [1,2,3]输出:[[0,1],[1,0]]输入:nums = [0,1]输入:nums = [1]
2025-02-15 00:49:35
137
原创 LeetCode热题100—51
在选修某些课程之前需要一些先修课程。先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi。你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1。请你判断是否可能完成所有课程的学习?如果可以,返回 true;否则,返回 false。例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1。
2025-02-15 00:06:08
215
原创 LeetCode热题100—50
返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。值 2 代表腐烂的橘子。值 0 代表空单元格;值 1 代表新鲜橘子;994. 腐烂的橘子。
2025-02-14 22:12:11
126
原创 LeetCode热题100—49
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2025-02-14 21:02:26
219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅