5个算法模板
想要用一个“万能模板”直接套用 LeetCode Hot 100 的所有题目是不切实际的,因为算法的本质是针对不同数据结构和业务场景的时间/空间复杂度优化。图的搜索、数组的排序、树的遍历在物理内存和逻辑推演上是完全不同的维度。 不过,如果我…
载入中...
该分类下共收录了 17 篇文章
想要用一个“万能模板”直接套用 LeetCode Hot 100 的所有题目是不切实际的,因为算法的本质是针对不同数据结构和业务场景的时间/空间复杂度优化。图的搜索、数组的排序、树的遍历在物理内存和逻辑推演上是完全不同的维度。 不过,如果我…
560. 和为 K 的子数组 Subarray Sum Equals K 难度: 🟡 中等 📖 题目描述 给你一个整数数组 $nums$ 和一个整数 $k$,请你统计并返回 该数组中和为 $k$ 的子数组的个数。 子数组 是数组中元…
101. 对称二叉树 Symmetric Tree 示例说明 示例 1: 输入: root = 1,2,2,3,4,4,3 输出: true 结构展示: Plaintext …
前端面试中的编程题通常不是为了刁难你的数学天赋,而是为了考察你对底层机制的理解(如事件循环、内存引用、异步)以及对日常业务中复杂数据处理的抽象能力。 为了最大化覆盖面试场景,我们将高频题目分为三大类:JavaScript 核心机制伪造(手写…
题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 进阶: 你可以设计并实现时间复杂度为 $On$ 的解决方案吗? 提示 $0 \le \text{nums.length} \…
移动零 Move Zeroes 题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = 0,1,0…
难度:中等 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。1 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,3,6,2,7 是数组 0,3,1,6,2,2,7 的子序列。2 提示…
LeetCode 53. 最大子数组和 难度:中等 题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 示例 1: 输入:…
难度: 简单 示例 示例 1: https://assets.leetcode.com/uploads/2021/03/06/diamtree.jpg 输入: root = 1,2,3,4,5 输出: 3 解释: 3 ,取路…
难度:中等 题目描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列而成的字符串(包括相同的字符串)。 提示:3 1 <= s.leng…
LeetCode Hot 100 确实是面试中出现频率最高的题目,它们覆盖了解决算法问题最核心、最经典的思想。虽然题目看似千变万化,但其背后考察的算法和数据结构模式是高度集中的。 与其将这100道题看作是独立的个体,不如将它们视为对几个核心…
我们来系统且深入地剖析动态规划(Dynamic Programming, DP)。我会遵循第一性原理,从它最核心的思想出发,逐步构建起完整的知识体系,并最终用 JavaScript 代码来实践。 什么是动态规划?从本质说起 想象一下你每天…
题目:嵌套数组反转 Nested Array Reversal 题目描述: 请实现一个函数,该函数接收一个嵌套的数组作为输入。这个数组中可能包含数字以及其他数组。 函数的任务是,在保持原始数组的嵌套结构完全不变的情况下,将其中所有的数字进行…
算法题目:最小覆盖子串 给你一个字符串 s 和一个字符串 t 。请你找出在 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复的字符,我们寻找的子字符串中该字…
好的,我们来深入探讨一下前端开发面试中那些最经典、最核心的算法题目。 不同于后端或纯算法岗位,前端的算法面试更侧重于考察那些与日常工作场景紧密相关的问题。比如:处理树状结构(DOM、组件树)、应对高频事件、管理异步流程、高效处理数据等。因此…
好的,我们来系统且深入地剖析桶排序(Bucket Sort)、基数排序(Radix Sort)和快速排序(Quick Sort)这三种经典的排序算法。我将遵循第一性原理,从它们各自的核心思想出发,逐步推演其实现逻辑、效率和适用场景。 快速…
好的,我们来彻底讲明白如何在 JavaScript 中翻转一棵二叉树。 这不仅仅是一个经典的算法问题,它还因为一则著名的轶事而广为人知:流行的软件包管理器 Homebrew 的作者 Max Howell 在 Google 面试时因为没能现场…