JS_LeetCode05:盛最多水的容器 5.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 贪心算法总是在当前条件下做出最优选择! 首先,要知道水的容量由长宽高决定,这里的宽固定了,因此取决于长(木板间 2025-05-13 LeetCode #双指针
JS_LeetCode04:移动零 4.移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 双指针属于一种算法技巧,使用两个变量(指针)来同时在一个数组或者字符串上操作,达到高效解决问题的目的。 在这道题,使用快指针去遍历数组,慢指针负责做非零区域的边界,也就是指向最后一个非零数的下一个位置,准备存放新的非零数。这样的话, 2025-05-12 LeetCode #双指针
JS_LeetCode03:最长连续序列 3.最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 Set它是ES6引入的新数据结构,用于存储一组唯一的值。 本质是用哈希表实现的,用于去重和快速查找。 ?和Map的区别 键的类型:没有区别,都是任意类型的值 是否有序:没有区别,都有插入顺序 是否唯一: Set自动去重 2025-05-11 LeetCode #哈希表
JS_LeetCode02:字母异位词分组 2.字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 哈希表字母异位词的共同点是它包括的字母是相同的,将字母进行排序后得到的字符串是相同的。 因此,考虑将排序后的字符串作为键,值就是所有对应的异位词。 使用for循环遍历每一个字符串,对其字母进行排序,如果键已存在,则将字符串加入键对应的 2025-05-11 LeetCode #哈希表
JS_LeetCode01:两数之和 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 哈希表(对象)哈希表,英文名Hash Table,也叫做散列表。 它是以键值对形式存储数据的数据结构。是数组的扩展,利用了数组根据下标访问 2025-05-11 LeetCode #哈希表
JS今日份练习题3 今日份练习题 1、无重复字符的最长子串123456编写一个函数 lengthOfLongestSubstring(s),该函数接受一个字符串 s,返回其中不包含重复字符的最长子串的长度。lengthOfLongestSubstring("abcabcbb"); // 返回 3,因为最长的无重复子串是 "abc"lengthOfLongestSubstring 2025-03-09 JavaScript #无重复字符的最长子串(滑动窗口) #最长回文子串(动态规划) #三数之和(双指针)
JS今日份练习题2 今日份练习题 1、实现 Promise.all1234请实现一个函数 promiseAll(promises),它接受一个 Promise 数组作为参数,并返回一个新的 Promise。当所有传入的 Promise 都成功时,新 Promise 应以数组形式返回所有结果,顺序与原数组一致;如果其中任意一个 Promise 被拒绝,则新 Promise 应立即被拒绝,并返回该错误。 ? Promi 2025-03-09 JavaScript #题库 #实现 Promise.all #实现自定义的 bind 方法 #实现柯里化函数 #实现节流函数 #实现 Promise.race #数组传入指定深度展平 #匹配括号问题
JS今日份练习题 今日份练习题 1、异步执行顺序1234console.log(1);setTimeout(() => { console.log(2); }, 0);Promise.resolve().then(() => { console.log(3); });console.log(4); ? 什么是setTimeout Web API,window的方 2025-03-08 JavaScript #题库 #异步执行顺序 #变量提升 #闭包与作用域 #反转字符串 #数组去重 #深拷贝 #防抖函数
Vue的小重点 Vue的小重点 一、生命周期1、生命周期过程Vue的生命周期是指Vue实例从创建到销毁的过程。 Vue2生命周期 创建阶段 beforeCreate:实例尚未完成初始化,不能访问data、computed、methods等。 created:data、computed、methods 等已经初始化,可以访问和修改。DOM还未渲染。 挂载阶段 beforeMount:已经编译好模版,但还没有 2025-02-21 Vue #组件通信 #生命周期 #Router路由 #Vuex #虚拟DOM
Vue基础 Vue基础 1、Vue的基本原理Vue是一款用于构建用户界面的 JavaScript 框架。采用的MVVM架构(Model-View-ViewModel),通过数据驱动和组件化开发来构建用户界面。 MVVM架构 Model,数据层,存储应用的状态数据 View,视图层,即DOM,展示数据的UI VIewModel,视图模型,Vue实例充当ViewModel,负责把View和Model绑定,实现数据 2025-02-20 Vue #MVVM #响应式数据 #模版编译 #组件通信 #computed #watch #slot #保存页面状态 #事件修饰符 #v-if #v-show #v-model #keep-alive #$nextTick #Vue.set #自定义指令 #依赖收集 #性能优化