
每日一题
文章平均质量分 75
前端 贾公子
博主写了对element-plus的表格和表单的封装
[表格]https://gitee.com/childe-jia/table-vue3
[表单] https://gitee.com/childe-jia/form-render
大家支持一下
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
前端算法 === 933. 最近的请求次数
写一个类来计算特定时间范围内最近的请求。请你实现tt3000每次对ping的调用都使用比之前更大的t值。],范围是 [-2999,1],返回 1],范围是 [-2900,100],返回 2],范围是 [1,3001],返回 3],范围是 [2,3002],返回 3。原创 2024-08-28 10:15:45 · 812 阅读 · 0 评论 -
前端算法 | LeetCode第 70 题爬楼梯问题
第一步:如果你现在只有1个台阶(n=1),你只有一种方法,那就是直接走上去。所以,f(1)=1。第二步:如果你有2个台阶(n=2),你有两种方法:先走1个台阶再走1个台阶,或者直接走2个台阶。所以,f(2)=2。原创 2024-08-21 11:49:37 · 912 阅读 · 0 评论 -
前端算法 ==== 栈的好戏还要继续!| 1047. 删除字符串中的所有相邻重复项
给出由小写字母组成的字符串S会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。"abbaca""ca"例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。原创 2024-08-25 18:31:14 · 364 阅读 · 0 评论 -
回溯算法理论基础
回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。本篇我们讲解了,什么是回溯算法,知道了回溯和递归是相辅相成的。接着提到了回溯法的效率,回溯法其实就是暴力查找,并不是什么高效的算法。然后列出了回溯法可以解决几类问题,可以看出每一类问题都不简单。最后我们讲到回溯法解决的问题都可以抽象为树形结构(N叉树),并给出了回溯法的模板。原创 2025-04-25 11:48:20 · 886 阅读 · 0 评论 -
前端算法 === 栈的拿手好戏!| 20 有效的括号
有的同学经常会想学的这些数据结构有什么用,也开发不了什么软件,大多数同学说的软件应该都是可视化的软件例如APP、网站之类的,那都是非常上层的应用了,底层很多功能的实现都是基础的数据结构和算法。时,字符串 "(}" 包含一个左括号 "(" 和一个错误的右括号 "}". 当遇到右括号 "}", 栈中应该弹出一个左括号 "{" 来匹配它,但栈中实际上是 "("。题意其实就像我们在写代码的过程中,要求括号的顺序是一样的,有左括号,相应的位置必须要有右括号。第一种情况,字符串里左方向的括号多余了 ,所以不匹配。原创 2024-08-25 11:24:40 · 535 阅读 · 0 评论 -
前端算法 === 计数排序
计数排序是一种简单而高效的排序算法,特别适合于处理一定范围内的整数排序问题。它的核心思想是利用额外的存储空间来记录数组中每个元素出现的次数,然后根据这些计数来重新构建一个有序的数组。以下是对计数排序算法的详细介绍。原创 2024-08-24 16:42:09 · 512 阅读 · 0 评论 -
前端算法 === 力扣 111 二叉树的最小深度
DFS和BFS都是解决这个问题的有效方法。DFS的优点是代码简单,但可能在某些情况下效率不如BFS。BFS通常更直观,因为它逐层遍历树,而且对于这个问题,BFS可以更快地找到最小深度,因为它会在找到第一个叶子节点时立即停止搜索。然而,BFS需要额外的存储空间来存储队列。根据具体问题和场景,你可以选择适合的方法。原创 2024-08-26 16:49:53 · 634 阅读 · 0 评论 -
力扣 905 按奇偶排序数组:双指针法的优雅实现
通过双指针法,我们优雅地解决了按奇偶排序数组的问题。这种方法不仅高效,而且易于理解。希望这篇文章能帮助你更好地掌握这种经典算法!原创 2025-04-11 13:13:15 · 465 阅读 · 0 评论 -
力扣 83 . 删除排序链表中的重复元素:深入解析与实现
链表是由一系列节点数据域:存储当前节点的值指针域:指向下一个节点的内存地址。原创 2025-04-24 11:44:54 · 754 阅读 · 0 评论 -
力扣 922. 按奇偶排序数组 II :双指针原地交换
通过双指针一次遍历,原地交换元素,该算法高效且优雅地解决了奇偶排序问题。理解双指针移动的条件和交换的动机是掌握此算法的关键。原创 2025-04-10 11:42:13 · 339 阅读 · 0 评论 -
力扣349 == 两个数组交集的两种解法
特性解法一(Set + 删除)解法二(双重遍历 + Set)时间复杂度O(m + n)O(m × n)空间复杂度O(m)O(k)处理重复元素立即删除,避免重复匹配依赖 Set 去重适用场景大数据量小数据量或简单场景推荐解法优先选择解法一,因为它利用Set的高效查找和删除操作,时间复杂度更低,尤其适合处理大规模数据。解法二虽然代码更直观,但性能较差,仅在数据量较小时适用。去重机制:使用Set结构天然去重。性能优化:通过删除已匹配元素减少重复检查。方法选择:根据数据规模选择时间复杂度更优的解法。原创 2025-04-17 22:38:40 · 385 阅读 · 0 评论 -
力扣 121 买卖股票最佳时机贪心策略详解
贪心策略通过维护历史最低价,将问题转化为一次遍历,高效解决了一次交易的最大利润问题。关键点理解最低价对后续利润的决定性作用。遍历过程中不断更新最低价和最大利润。此方法简洁高效,是同类问题中的经典解法。对于多次交易的问题(如LeetCode 122题),需采用不同的策略。原创 2025-04-11 18:31:37 · 480 阅读 · 0 评论 -
力扣 66 == 加一算法详解与代码实现
该方法避免了将数组转换为数字可能导致的溢出问题,直接逐位处理进位,高效且可靠。通过分情况讨论,确保所有可能的输入都能正确处理。原创 2025-04-14 18:27:03 · 190 阅读 · 0 评论 -
力扣1338 === 贪心算法解决数组减半问题
要解决这个问题,我们需要找到最少需要删除的不同整数集合,使得剩余的元素个数不超过原数组的一半。:假设存在更优的策略,那么该策略必须包含一个比当前选择的频率更低的元素,但这会导致需要更多的删除次数,与假设矛盾。通过贪心算法,优先删除高频元素,我们能够以最小的删除次数将数组大小减半。删除频率为3和2的元素,sum=3+2=5 ≥3,count=2。:每次选择频率最高的元素,可以确保每一步删除操作是最优的。的统计结果为:3→4次,5→3次,2→2次,7→1次。,需删除两个元素(例如频率为2和1的元素)。原创 2025-04-07 16:55:30 · 571 阅读 · 0 评论 -
详解 LeetCode 第 242 题 - 有效的字母组
该题目是实际中常见的字符组合问题,本解法利用 Map 展现了非常高效的计数思路。最终 map = {a:0, n:0, g:0, r:0, m:0} → 全部值为 0,说明是字母组。我们需要确认两个字符串是否含有相同的字符,并且各字母出现的次数也相同。:判断 Map 所有 value 是否都等于 0,如果是,则返回。如果是字母组,那么最后 Map 里所有值必然是 0。的字符并重新排列所得到的,那么它们是字母组。类型来统计字母的出现次数是非常有效的方法。,请判断是否为字母组(Anagram)。原创 2025-04-25 18:11:06 · 519 阅读 · 0 评论 -
力扣 283 移动零的两种高效解法详解
两种方法均满足题目要求,选择依据具体场景。两种方法均保证了非零元素的顺序,且原地操作,符合题目要求。在解决数组中的零移动到末尾的问题时,我们需要保持非零元素的顺序,并原地修改数组。记录非零元素应插入的位置。遍历数组时,遇到非零元素就将其放到。此方法通过交换操作,逐步将非零元素移到前面,零被交换到后面。:将所有非零元素移动到数组前端。空间复杂度:O(1),仅使用常量空间。时间复杂度:O(n),两次独立遍历。时间复杂度:O(n),仅一次遍历。空间复杂度:O(1),原地交换。第一次遍历后,非零元素。原创 2025-04-15 23:19:18 · 347 阅读 · 0 评论 -
LeetCode - 739.每日温度问题单调栈解法
单调栈通过维护温度递减的索引序列,将问题的复杂度优化至线性时间。算法核心在于利用栈的单调性快速找到下一个更高温度的日期,避免了重复遍历。这种方法在处理“寻找下一个更大元素”类问题时非常高效。原创 2025-04-05 12:56:50 · 1012 阅读 · 0 评论 -
LeetCode 56. 合并区间 | 排序+贪心解法详解
本题通过排序将问题转化为线性遍历合并,是典型的贪心策略。关键在于理解排序如何简化重叠判断,以及如何通过一次遍历合并所有可能的重叠区间。类似问题如插入区间(LeetCode 57)也可用类似思路解决。原创 2025-03-29 22:17:37 · 659 阅读 · 0 评论 -
使用哈希表(Map)解决“只出现一次的数字 II”问题
本文使用哈希表法直观解决了问题,该方法具有通用性,可扩展至其他出现次数不同的场景(如找出出现两次的元素)。若追求空间效率优化,可采用位运算方法,但实现较为复杂。哈希表法在时间与代码可读性之间取得了良好平衡,是解决此类问题的经典思路。原创 2025-04-07 09:47:57 · 416 阅读 · 0 评论 -
216. 组合总和 III 回溯
该问题通过回溯算法枚举所有可能的组合,结合剪枝策略(剩余数字不足、和超过目标值)显著提高效率。递增选择数字:避免重复组合。剪枝优化:减少不必要的递归调用。回溯机制:撤销选择以尝试其他可能。这种模式适用于许多组合问题,如子集、排列、组合总和等。原创 2025-03-31 23:17:43 · 876 阅读 · 0 评论 -
解决LeetCode“使括号有效的最少添加”问题
通过贪心策略,优先匹配最近的左括号,确保每一步都最优,最终得到最少添加次数。此方法高效且简洁,适合处理类似括号匹配问题。原创 2025-04-04 23:44:56 · 342 阅读 · 0 评论 -
LeetCode 2442:统计反转后的不同整数数量
逐位处理:每次只操作一位数字。数学重组:通过res*10 + 末位直接构建反转后的数字。无需字符串转换:效率高,且适用于大数字(但需注意JavaScript的数值范围限制)。通过这种“拆解-重组”的数学方法,可以高效地完成整数反转。题目描述给定一个整数数组nums,要求将每个元素反转后添加到原数组中,最终统计所有不同整数的数量。示例4解释:原数组为[123, 456],反转后得到[321, 654],合并后的数组为,共有4个不同整数。解题思路核心目标对每个元素执行反转操作,生成新数字。原创 2025-04-05 22:25:03 · 976 阅读 · 0 评论 -
LeetCode 接雨水问题详解 - 动态规划解法
动态规划解法通过预处理左右最高墙,高效计算每个位置的积水量。该方法思路清晰,时间复杂度低,是解决此类问题的经典方法。原创 2025-04-03 12:10:08 · 1295 阅读 · 0 评论 -
每日一题 == 674. 最长连续递增序列
通过遍历数组并动态维护当前递增序列的长度,能够高效地找到最长连续递增子序列的长度。该方法简洁且时间复杂度为线性,适用于大规模数据。注意处理遍历结束后的最后一次比较,确保结果的正确性。原创 2025-03-29 20:30:03 · 229 阅读 · 0 评论