JavaScript-Algorithms
JavaScript-Algorithms copied to clipboard
基础理论+JS框架应用+实践,从0到1构建整个前端算法体系
```js 'abcaakjbb' => {'a':2,'b':2} 'abbkejsbcccwqaa' => {'c':3} ``` 注意:题目说的是连续出现,注意连续二字
给定一个 **没有重复** 数字的序列,返回其所有可能的全排列。 **示例:** ```js 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] ``` 附赠leetcode地址:[leetcode](https://leetcode-cn.com/problems/permutations/solution/quan-pai-lie-wen-ti-by-user7746o/)
### bind() > `bind()` 方法创建一个新的函数,在 `bind()` 被调用时,这个新函数的 `this` 被指定为 `bind()` 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。 > > — MDN `bind` 方法与 `call / apply` 最大的不同就是前者返回一个绑定上下文的**函数**,而后两者是**直接执行**了函数。 来个例子说明下: ```js let value = 2; let foo =...
给定一个包含非负整数的 `m x n` 网格 `grid` ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。  **示例 1:** ``` 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1→1 的总和最小。 ``` **示例 2:** ``` 输入:grid = [[1,2,3],[4,5,6]] 输出:12 ``` **提示:** -...
`setTimeout` 方法,就是一个定时器,用来指定某个函数在多少毫秒之后执行。它会返回一个整数,表示定时器的编号,同时你还可以通过该编号来取消这个定时器: ```javascript function showName(){ console.log("Hello") } let timerID = setTimeout(showName, 1000); // 在 1 秒后打印 “Hello” ``` `setTimeout` 的第一个参数是一个将被延迟执行的函数, `setTimeout` 的第二个参数是延时(多少毫秒)。 如果使用 `setTimeout` 延迟的函数需要携带参数,我们可以把参数放在 `setTimeout` 里(放在已知的两个参数后)来中转参数给需要延迟执行的函数。 ``` var timeoutID1...
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 **示例 1:** ``` 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 ``` **示例 2:** ``` 输入: "cbbd" 输出: "bb" ``` [leetcode](https://leetcode-cn.com/problems/longest-palindromic-substring/solution/leetcode5zui-chang-hui-wen-zi-chuan-by-user7746o/)
找到有序数组 [1, 2, 3, 4, 7, 7, 7, 9, 12, 23, 34, 45, 55, 67]中第一次出现的位置,比如7第一次出现的位置是4
**单行文本** ```css .text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } ``` - `overflow: hidden`(文字长度超出限定宽度,则隐藏超出的内容) - `white-space: nowrap`(设置文字在一行显示,不能换行) - `text-overflow: ellipsis`(规定当文本溢出时,显示省略符号来代表被修剪的文本) **多行文本(css)** ```css .text { display: -webkit-box; overflow: hidden; -webkit-line-clamp:...
给你一个包含 `n` 个整数的数组 `nums`,判断 `nums` 中是否存在三个元素 `a` ,`b` ,`c` ,使得 `a + b + c = 0` ?请你找出所有满足条件且不重复的三元组。 **注意:** 答案中不可以包含重复的三元组。 **示例:** ```js 给定数组 nums = [-1, 0, 1, 2, -1,...
### 引言 栈结构很简单,我们可以通过数组就能模拟出一个栈结构,但仅仅介绍栈结构就太不前端了,本节从栈结构开始延伸到浏览器中 JavaScript 运行机制,还有存储机制上用到的栈结构及相关数据结构,一文吃透所有的前端栈知识。 以后再提到栈时,我们不再仅限于 LIFO 了,而是一个有深度的栈。 这部分是前端进阶资深必备,如果你想打造高性能的前端应用,也需要了解这块,同时它也是面试的常见考察点。 理解栈对于我们理解 JavaScript 语言至关重要,本文主要从以下几个方面介绍栈: - 首先介绍栈及代码实现 - 介绍 JavaScript 运行机制及栈在其中的应用 - 详细介绍调用栈及我们开发中如何利用调用栈 - JS 内存机制:栈(基本类型、引用类型地址)与堆(引用类型数据) - 最后来一份总结与字节&leetcode刷题,实现最小栈 本节吃透栈原理,之后几天会每日一题,刷透栈题目,下面进入正文吧👍 ### 一、 栈 栈是一种遵从后进先出...