Leetcode刷题技巧总结
文章平均质量分 75
本文总结了前端使用javaScript进行leetcode刷题的经验总结。将刷题按照类型划分为“字典哈希表相关场景题总结”、“堆相关场景题总结”、“二叉树、平衡二叉树相关场景题总结”、“链表相关场景题总结”、“栈相关场景题总结”、“分治、二分查找”、“动态规划”等专题总结
三月的一天
计算机专业硕士毕业,多年的数学建模、复杂网络、软件开发、前后端技术开发的实践经验。作为一名博客作者,我致力于将我所学到的知识和经验分享给更多的人。我相信,知识的力量在于传播,而分享则是知识传播的最佳途径。我的博客内容涵盖了计算机专业基础知识、数学建模相关实践、复杂网络论文研究、LeetCode算法刷题经验、C语言开发经验、前端Vue、React框架开发实战相关知识。旨在为读者提供有价值的信息和实用的技巧。如果您对我的博客内容感兴趣,或者有任何问题想要交流,您可以通过评论或者私信与我联系!
展开
-
leetcode刷题(javaScript)——回溯、递归、dfs相关场景题总结
递归通常用于解决可以被分解为相同问题的子问题的情况,通过不断调用自身来解决问题。当涉及到回溯、递归、深度优先搜索(DFS)相关的场景题时,通常可以将它们放在一起综合考虑,因为它们之间有一定的联系和相互影响。以下是一些相关的LeetCode场景题以及解题技原创 2024-03-24 10:24:29 · 846 阅读 · 0 评论 -
leetcode刷题(javaScript)——BFS广度优先遍历相关场景题总结
广度优先搜索(BFS)在JavaScript编程中有许多实际应用场景,特别是在解决图、树等数据结构相关问题时非常常见。在JavaScript中,可以使用队列来实现广度优先搜索算法。通过将起始节点加入队列,然后迭代地将节点的邻居节点加入队列,直到队列为空为止。这样可以逐层地遍历图或树结构,找到目标节点或满足条件的节点。在实际编程中,需要注意避免重复访问节点、处理环路等问题,确保算法的正确性和效率。上题:可以按照博主的列的题目顺序依次练习,二叉树的简单,图论的难,但是做题技巧比较固定。原创 2024-03-21 18:26:50 · 865 阅读 · 0 评论 -
leetcode刷题(javaScript)——动态规划相关场景题总结
动态规划在 JavaScript 刷题中有一定的难度,但也是非常常见和重要的算法思想。动态规划通常适用于需要求解最优解、最大值、最小值等问题的场景,可以将复杂问题拆分成子问题,通过存储子问题的解来避免重复计算,从而提高效率。理解问题的状态转移方程: 动态规划的核心是找到问题的状态转移方程,即如何从子问题的解推导出更大规模问题的解。理解问题的状态转移方程是解决动态规划问题的关键。定义合适的状态数组: 在解决动态规划问题时,通常需要定义一个状态数组来存储子问题的解。确保状态数组的定义清晰原创 2024-03-18 17:52:31 · 1302 阅读 · 0 评论 -
leetcode刷题(javaScript)——分治思想(二分查找、快速排序)相关场景题总结
分治思想是一种将问题分解成更小的子问题,然后解决子问题并将结果合并的算法设计策略。二分查找、快速排序和折半查找都属于分治思想的经典算法。在leetcode里,分治思想一般结合其他场景出现,构成复合型题目。但是在看题时一定要了解能否用分治思想去解决题目,避免使用复杂度过高的暴力解决方式;尤其是看到强调时间复杂度为O(logn)实现,那很可能是二分法了。在实现这些分治算法时,通常会遵循以下逻辑:分解(Divide):将原始问题分解成更小的子问题。原创 2024-03-13 23:00:16 · 1249 阅读 · 1 评论 -
leetcode刷题(javaScript)——堆相关场景题总结
堆是什么?堆都能用树表示,并且一般树的实现都是利用链表。平时使用的最多的是二叉堆,它可以用完全二叉树表示,二叉堆易于存储,并且便于索引。在堆的实现时注意:因为是数组,所以父子节点的关系就不需要特殊的结构去维护了,索引之前通过计算就可以得到,省掉了很多麻烦,如果是链表结构,就会复杂很多。在JavaScript刷题中,堆(Heap)通常用于解决一些需要高效处理优先级的问题,例如找出最大或最小的K个元素、实现优先队列等。:通过维护一个大小为K的最大堆或最小堆,可以快速找出数组中最大或最小的K个元素。原创 2024-03-13 14:58:47 · 1003 阅读 · 1 评论 -
leetcode刷题(javaScript)——二叉树、二叉搜索树、平衡二叉树相关场景题总结
掌握二叉树的前序、中序、后序遍历算法,以及它们的递归和迭代实现方式。学习常见的二叉树算法题目:包括但不限于二叉树的最大深度、判断平衡二叉树、路径总和、对称二叉树等常见题目。练习二叉树的递归和迭代实现:练习使用递归和迭代方式解决二叉树相关问题,加深对算法的理解和应用。原创 2024-03-05 19:30:45 · 1026 阅读 · 0 评论 -
leetcode刷题(javaScript)——字典哈希表相关场景题总结
在 JavaScript 刷题中,字典(Dictionary)和哈希表(Hash Table)通常用来存储键值对,提供快速的查找、插入和删除操作。它们在很多算法题目中都有广泛的应用,特别是在需要快速查找元素或统计元素出现次数的情况下。原创 2024-03-04 17:59:37 · 1091 阅读 · 0 评论 -
leetcode刷题(javaScript)——链表相关场景题总结
1. 熟悉链表的基本操作:了解链表的基本结构和操作,包括节点的定义、指针操作等。:在处理链表时,要考虑边界情况,如空链表、只有一个节点的链表等。2. 反转链表:将链表的指针方向反转,使链表的尾部变为头部。1. 遍历链表:从头到尾遍历链表,处理每个节点的值或指针。3. 合并两个有序链表:将两个有序链表合并成一个有序链表。4. 删除链表中的指定节点:删除链表中特定值或位置的节点。5. 检测链表中是否有环:判断链表中是否存在环形结构。:递归是解决链表问题的常见方法,可以简化问题的复杂度。原创 2024-03-02 00:00:38 · 1156 阅读 · 1 评论 -
leetcode刷题(javaScript)——栈、单调栈相关场景题总结
栈的主要思想是“后进先出”(Last In First Out,LIFO),即最后进入栈的元素最先出栈。栈通常用于解决需要“回溯”或“撤销”操作的问题,以及需要维护“”的问题。给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。主要思路是遇到左括号推入栈遇到右括号,将栈顶左括号移除,并和它进行对比。不相等return false否则继续比较,直到最后,判断是否还有没匹配上的左括号。原创 2024-02-29 18:59:39 · 1036 阅读 · 0 评论 -
leetcode刷题(javaScript)——字符串相关场景题总结
素数:只能被1和它本身整除。原创 2024-02-25 20:08:22 · 461 阅读 · 0 评论 -
javaScript数组去重的几种实现方式——适用非引用数据去重
比较当前元素数组下标和根据indexOf查找的数组下标是否一致,一致则保留。利用indexOf获取的是多个相同元素只获取首次出现的下标,这样保留了首次出现的数据项。利用reduce每次循环返回上一步的执行结果,设置每步获取的数组是非重复的。即判断当前循环项是否包含在上一步的数组中,如果不包含,将当前元素追加到上一步执行结果中。利用对象的key值具有唯一性 将数组中元素作为对象的key,之后用Object.keys获取。将不重复的数据项添加到newArr中。原创 2024-02-25 19:11:45 · 378 阅读 · 0 评论 -
leetcode刷题(javaScript)——数组相关场景题总结
在LeetCode刷题时,针对数组和字符串相关的场景题,可以使用以下技巧和方法: 双指针法:使用快慢指针、左右指针或对撞指针解决问题,如查找两数之和、判断回文字符串等。滑动窗口:通过维护一个滑动窗口来解决问题,如最小覆盖子串、最长无重复字符的子串等。哈希表:使用哈希表记录元素出现的次数或位置,解决查找、去重等问题。排序:将数组排序后,利用有序性解决问题,如有序数组中查找两数之和、三数之和等。前缀和:利用前缀和数组来解决子数组和问题,如子数组和为K等。原创 2024-02-24 13:46:19 · 553 阅读 · 0 评论 -
JS力扣刷题经典100题——整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示: -231原创 2022-12-07 22:12:32 · 538 阅读 · 0 评论 -
JS力扣刷题经典100题—— 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。提示: -231原创 2022-12-06 23:04:39 · 214 阅读 · 0 评论 -
JS力扣刷题经典100题——最长回文子串
给你一个字符串 ,找到 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示: 1原创 2022-12-06 20:32:20 · 693 阅读 · 1 评论 -
JS力扣刷题经典100题——寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/median-of-two-sorted-arrays著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-12-04 16:08:06 · 367 阅读 · 0 评论 -
JS力扣刷题经典100题——无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。原创 2022-12-04 14:21:18 · 317 阅读 · 0 评论 -
JS力扣刷题经典100题——两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。原创 2022-12-04 00:11:07 · 668 阅读 · 0 评论