面试
文章平均质量分 69
时清云
自强不息,厚德载物;日拱一卒,功不唐捐;海纳百川,有容乃大。这世上没有最强的人,只有想变强的人,做一个简单真实的自己。
展开
-
【算法】子集
难度:中等。原创 2024-07-22 22:47:14 · 151 阅读 · 0 评论 -
【算法】有效的括号字符串
难度:中等。原创 2024-07-21 16:09:16 · 287 阅读 · 0 评论 -
【算法】跳跃游戏II
难度:中等。原创 2024-07-20 22:22:16 · 350 阅读 · 1 评论 -
【算法】跳跃游戏
难度:中等。原创 2024-07-19 23:11:48 · 415 阅读 · 0 评论 -
【算法】数组中的第K个最大元素
难度:中等。原创 2024-07-18 23:01:05 · 226 阅读 · 0 评论 -
【算法】 数据流中的第 K 大元素
难度:简单。原创 2024-07-17 23:49:06 · 308 阅读 · 0 评论 -
【算法】LRU缓存
难度:中等。原创 2024-07-16 18:36:49 · 862 阅读 · 0 评论 -
【算法】二叉树的层序遍历
难度:中等。原创 2024-07-15 23:30:18 · 338 阅读 · 0 评论 -
【算法】验证二叉搜索树
难度:中等。原创 2024-07-14 21:56:01 · 339 阅读 · 0 评论 -
【算法】平衡二叉树
难度:简单。原创 2024-07-13 23:05:26 · 973 阅读 · 0 评论 -
【算法】删除链表的倒数第 N 个结点
难度:中等。原创 2024-07-12 22:43:01 · 382 阅读 · 0 评论 -
【算法】反转链表
难度:简单。原创 2024-07-11 22:37:50 · 360 阅读 · 0 评论 -
【算法】字符串的排列
难度:中等给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true;否则,返回 false。换句话说,s1 的排列之一是 s2 的 子串。原创 2024-07-10 14:04:38 · 451 阅读 · 0 评论 -
【算法】无重复字符的最长子串
难度:中等。原创 2024-07-09 16:00:46 · 310 阅读 · 0 评论 -
【算法】买卖股票的最佳时机
使用滑动窗口来解题难度:简单。原创 2024-07-09 11:19:55 · 341 阅读 · 0 评论 -
【算法】接雨水
难度:困难。原创 2024-07-08 23:40:20 · 506 阅读 · 0 评论 -
【算法】验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。示例 1:输入: s = “A man, a plan, a canal: Panama”输出:true解释:“amanaplanacanalpanama” 是回文串。示例 2:输入:s = “race a car”输出:false。原创 2024-07-07 20:44:17 · 269 阅读 · 0 评论 -
【算法】柱状图中最大的矩形
单调栈法之所以被想到,是因为它能够高效地处理当前柱子与其左右两边柱子高度的比较关系,利用栈的特性(后进先出)来快速确定每个柱子作为矩形高度时的左右边界。这种方法特别适合处理与顺序相关且需要快速检索“最近的特定条件”的问题。给定 n 个非负整数,用来表示柱状图中各个柱子的高度。输入:heights = [2,1,5,6,2,3]求在该柱状图中,能够勾勒出来的矩形的最大面积。解释:最大的矩形为图中红色区域,面积为 10。解释:最大的矩形为图中红色区域,面积为 4。输入:heights = [2,4]原创 2024-07-06 23:21:18 · 304 阅读 · 0 评论 -
【JavaScript】具有 iterable 接口的数据结构
在这个例子中,iterableObj 对象实现了 Symbol.iterator 方法,返回一个迭代器对象,通过 for…of 循环遍历时,依次输出迭代器返回的值。因此,具有 iterable 接口的数据结构是指支持迭代器协议,可以通过 for…of 循环或其他遍历方法遍历其成员的数据结构。在 JavaScript 中,具有 iterable 接口的数据结构包括。这些数据结构可以使用。循环进行遍历,也可以通过。迭代器对象需要包含一个。的方法,该方法返回一个。方法都会返回一个包含。原创 2024-07-06 16:14:21 · 304 阅读 · 0 评论 -
【JavaScript】浅拷贝与深拷贝
对象浅拷贝与深拷贝是我们经常在项目开发中遇到的问题。那怎么更好的实现呢?在JavaScript中,浅拷贝(shallow copy)和深拷贝(deep copy)是处理对象和数组拷贝时经常遇到的概念。它们主要区别在于的处理方式。原创 2024-07-06 12:47:20 · 1076 阅读 · 0 评论 -
【算法】逆波兰表达式求值
遍历结束后,栈中只剩下一个元素,即为表达式的计算结果。5、原创 2024-07-05 22:42:04 · 513 阅读 · 0 评论 -
【算法】有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false提示:s 仅由括号 ‘()[]{}’ 组成。原创 2024-07-04 23:20:01 · 147 阅读 · 0 评论 -
【算法】最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9提示:我们做算法题的时候,一定先审好题:题目要求找出(不要求序列元素在原数组中的连续)的长度。原创 2024-07-03 11:45:23 · 311 阅读 · 0 评论 -
【算法】字母异位词分组
通过先把字符串转成数组,再进行排序,然后再转成字符串。如果是字符包含的字母相同,则最后得到转化之后的字符串都是一样的,接着再进行比较,这样复杂度降低了,逻辑更清晰了。原创 2024-07-02 21:43:52 · 353 阅读 · 0 评论 -
【算法】三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]输入:nums = [0,1,1]输入:nums = [0,0,0]解释:唯一可能的三元组和为 0。输出:[[0,0,0]]原创 2024-06-30 23:02:29 · 183 阅读 · 0 评论 -
【算法】两数之和
最简单的方法是通过两层for循环进行遍历, 使用暴力的查找两个子元素。但是这种方法的时间复杂度为O(n^2)。通过HashMap我们可以将时间复杂度降为O(2n)。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。原创 2024-06-29 16:49:15 · 177 阅读 · 0 评论 -
【前端工程化】深入浅出 Vite5 中依赖预构建
我们在使用vite启动项目时,细心的同学会发现项目 node_modules 目录下会额外增加一个 node_modules/.vite/deps 的目录:这个目录就是 vite 在开发环境下预编译的产物。项目中的「依赖部分」:ahooks、antd、react 等部分会被预编译成为一个一个 .js 文件。同时,.vite/deps 目录下还会存在一个 _metadata.json:hashoptimizedchunks简单来说vite在预编译时会对于项目中使用到的第三方依赖。转载 2024-05-07 17:41:28 · 228 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组06— slice() :复制数组元素
start和stop参数都是可选的。start 参数确定从零开始提取的索引。如果start是undefined, slice() 从 0 开始。stop参数,顾名思义,是一个从零开始的索引,在该索引处结束提取。slice() 方法提取到 stop-1。这意味着 slice() 方法不包含新数组中停止位置的元素。如果省略 stop 参数,slice() 方法将使用数组的长度作为 stop 参数。slice() 返回一个包含原始数组元素的新数组。转载 2024-02-19 17:37:50 · 78 阅读 · 1 评论 -
【JavaScript 教程】第六章 数组10— sort() : 对数组中的元素进行排序
sort() 方法允许您就地对数组的元素进行排序。除了返回排序后的数组,sort() 方法还改变了元素在原始数组中的位置。(会改变原有的数组)默认情况下, sort() 方法按升序对数组元素进行排序,最小值在前,最大值在后。sort() 方法将元素转换为字符串并比较字符串以确定顺序。在此示例中,sort() 方法将 10 放在 2 之前,因为在进行字符串比较时,字符串“10”在“2”之前。要解决此问题,您需要将比较函数传递给 sort() 方法。转载 2024-02-18 14:48:05 · 83 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组11— filter() :过滤数组中的元素
使用数组时最常见的任务之一是创建一个包含原始数组元素子集的新数组。假设您有一个城市对象数组,其中每个对象包含两个属性:name和population。i++) {JavaScript Array 提供了 filter() 方法,允许您以更短、更简洁的方式完成此任务。});结果如下:在本例中,我们调用了城市数组对象的 filter() 方法,并将其传递给一个测试每个元素的函数。在函数内部,我们检查了数组中每个城市的人口是否大于 300 万。如果是这种情况,则函数返回true;转载 2024-02-06 17:36:14 · 94 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组17—flatMap() :对每个元素执行映射函数并将结果展平
flat() 方法创建一个新数组,其中连接了子数组的元素。map() 方法创建一个新数组,其元素是映射函数的结果。flatMap() 方法是 map() 方法后跟深度为 1 的 flat() 方法的组合。flatMap() 方法首先使用映射函数映射数组中的每个元素,然后将结果展平到一个新数组中。转载 2023-12-19 17:06:58 · 304 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组14—reduce() :将数组的元素减少为一个值
并且我们想要计算数组元素的总数。i++) {6首先,声明了一个包含三个数字 1、2 和 3 的数组。其次,声明 sum 变量并将其值设置为零。第三,在 for 循环中,将 numbers 数组的元素加到 sum 变量中。循环之后,sum变量的值为6。我们所做的是将一个数组归约为一个值。Array.prototype 允许我们使用reduce});这很简单,不是吗?让我们详细看一下reduce()方法。转载 2024-02-06 16:59:45 · 57 阅读 · 0 评论