Rock
Rock
您好 文章可以授权公众号:“深圳湾码农“转载么 会注明作者和原文链接 谢谢!
感谢分享,可以转载到公众号【深圳湾码农】吗
``` /** * 解题思路: * 双指针 从头到尾比较 两个数组的第一个值,根据值的大小依次插入到新的数组中 * 空间复杂度:O(m + n) * 时间复杂度:O(m + n) * @param {Array} arr1 * @param {Array} arr2 */ function merge(arr1, arr2){ var result=[];...
### 解答:利用栈结构 **解题思路**: 将字符串中的字符依次入栈,遍历字符依次判断: - 首先判断该元素是否是 { 、 ( 、 [ ,直接入栈 - 否则该字符为 } 、 ) 、 ] 中的一种,如果该字符串有效,则该元素应该与栈顶匹配,例如栈中元素有 ({, 如果继续遍历到的元素为 ), 那么当前元素序列为 ({) 是不可能有效的,所以此时与栈顶元素匹配失败,则直接返回 false ,字符串无效 当遍历完成时,所有已匹配的字符都已匹配出栈,如果此时栈为空,则字符串有效,如果栈不为空,说明字符串中还有未匹配的字符,字符串无效 **画图帮助理解一下:**...
**浏览器进程** 浏览器是多进程的,有一个主控进程,以及每一个tab页面都会新开一个进程(某些情况下多个tab会合并进程)。 进程可能包括主控进程,插件进程,GPU,tab页(浏览器内核)等等。 - Browser进程:浏览器的主进程(负责协调、主控),只有一个 - 第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建 - GPU进程:最多一个,用于3D绘制 - 浏览器渲染进程(内核):默认每个Tab页面一个进程,互不影响,控制页面渲染,脚本执行,事件处理等(有时候会优化,如多个空白tab会合并成一个进程) **多线程的浏览器内核** 每一个tab页面可以看作是浏览器内核进程,然后这个进程是多线程的,它有几大类子线程: - GUI线程 - JS引擎线程 - 事件触发线程 - 定时器线程 - 网络请求线程 最新的Chrome浏览器包括:1个浏览器主进程(Browser)、1个GPU进程、一个网络(NetWork)进程和多个插件进程。
``` function integerToBin (num) { // 64 const result = [] while (num / 2) { next = num % 2 num = Math.floor(num / 2) result.unshift(next) } return result...
### 方法一:function ``` function createFlow(effects = []) { const queue = [...effects.flat()] const run = async function(cb) { for(let task of queue) { if(task.isFlow) { await task.run() } else {...
### 解法 1: 使用哈希表 哈希表的结构是:number-boolean,number 就是数组中的数字,boolean 代表数字是否出现过。 整体的流程是:遍历数组中的数字,检查是否出现过,如果出现过,那么返回此数字。代码实现如下: ``` // ac地址:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/ // 原文地址:https://xxoo521.com/2020-02-14-repeat-number/ /** * @param {number[]} nums * @return {number} */ var findRepeatNumber = function(nums) { const map =...
在react中创建组件的形式有三种 - 纯函数式定义的无状态组件 - React.createClass 定义的组件 - Extends React.Component 定义的组件 今天我们要聊的是纯函数式定义的无状态组件及类组件的到底有什么不同, 分别在什么场景下适合使用 首先我们来看一下用上述方法如何来创建一个组件 **1. Extends React.Component 定义的组件** React.Component是以ES6的形式来创建react的组件的,是React目前极为推荐的创建有状态组件的方式,最终会取代React.createClass形式 ``` class Demo extends React.Component { constructor(props) { super(props); this.state = {...
### 解法一:正则 + JS API ``` var reverseWords = function(s) { return s.trim().replace(/\s+/g, ' ').split(' ').reverse().join(' ') }; ``` ### 解法二:双端队列(不使用 API) 双端队列,故名思义就是两端都可以进队的队列 **解题思路:** - 首先去除字符串左右空格 - 逐个读取字符串中的每个单词,依次放入双端队列的对头 - 再将队列转换成字符串输出(已空格为分隔符)...