05 2021 档案
摘要:1.find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 arr.find(callback[, thisArg])注意 callback 函数会为数组中的每个索引调用即从 0 到 length - 1,而不仅仅是那些被赋值的索引,这意味着对于稀疏数组来说,
阅读全文
摘要:题目来源:342. 4的幂 给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x /** 方法一:二进制表示中 1 的位置 mask=(10101010101010101010
阅读全文
摘要:题目来源:231. 2 的幂 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。 /** * @param {number} n * @return {boolean
阅读全文
摘要:题目来源:1074. 元素和为目标值的子矩阵数量 给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。 子矩阵 x1, y1, x2, y2 是满足 x1 <= x <= x2 且 y1 <= y <= y2 的所有单元 matrix[x][y] 的集合。 如果
阅读全文
摘要:Array.prototype.push 可以在一个对象上工作。 注意,我们没有创建一个数组来存储对象的集合。 相反,我们将该集合存储在对象本身上,并使用在 Array.prototype.push 上使用的 call 来调用该方法,使其认为我们正在处理数组,而它只是像平常一样运作, 这要感谢 Ja
阅读全文
摘要:1.使用Array.prototype.push apply() 添加第二个数组的所有元素。 arr.push(element1, ..., elementN) 注意当第二个数组(如示例中的moreVegs)太大时不要使用这个方法来合并数组,因为事实上一个函数能够接受的参数个数是有限制的。具体可以参
阅读全文
摘要:参考:https://www.kancloud.cn/freya001/interview/1228068 001.React 中 setState 什么时候是同步的,什么时候是异步的?
阅读全文
摘要:在React中, 1、如果是由React引发的事件处理(比如通过onClick引发的事件处理),调用setState不会同步更新this.state, 2、除此之外的setState调用会同步执行this.state。 所谓“除此之外”,指的是绕过React通过addEventListener直接添
阅读全文
摘要:以下部分是学习js继承的实现方式中查找到的资料,记录下来方便翻看。 原作者链接:JS实现继承的几种方式 JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: // 定义一个动物类 function Animal (name) { // 属性 this.name = name ||
阅读全文
摘要:Array JavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。 创建数组 var fruits = ['Apple', 'Banana']; console.log(fruits.length); // 2 通过索引访问数组元素 var first = f
阅读全文
摘要:Map Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。 描述 一个Map对象在迭代时会根据对象中元素的插入顺序来进行 — 一个 for...of 循环在每次迭代后会返回一个形式为[key,value]的数组。 键的相等(Key equali
阅读全文
摘要:1.利用Set 方法去重 let nums = [1,4,3,2,5,9,8,3,2,3,4,8] function removeDuplicate(nums) { let set = new Set(nums); return Array.from(set) // return Array.fro
阅读全文
摘要:题目来源:477. 汉明距离总和 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。 计算一个数组中,任意两个数之间汉明距离的总和。 /** * @param {number[]} nums * @return {number} */ var totalHammingDistance
阅读全文
摘要:题目来源:461. 汉明距离 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 /** 方法一:直接计算异或后 1的个数 * @param {number} x * @param {number} y * @return {nu
阅读全文
摘要:题目来源:1190. 反转每对括号间的子串 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 /** * @param {string} s * @return {string}
阅读全文
摘要:因为apply第二个参数没传数组,所以报了这个错误。 错误: let result = Parent.apply(child,...rest); Function.apply(obj, args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作
阅读全文
摘要:题目来源:1787. 使所有区间的异或结果为零 给你一个整数数组 nums 和一个整数 k 。区间 [left, right](left <= right)的 异或结果 是对下标位于 left 和 right(包括 left 和 right )之间所有元素进行 XOR 运算的结果:n
阅读全文
摘要:题目来源:137. 只出现一次的数字 II // 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 /** 方法一:哈希表 * @param {number[]} nums * @return {number} */ va
阅读全文
摘要:题目来源:1707. 与数组中元素的最大异或值 给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries ,其中 queries[i] = [xi, mi] 。 第 i 个查询的答案是 xi 和任何 nums 数组中不超过 mi 的元素按位异或(XOR)得到的最大值。换句话说, 答
阅读全文
摘要:题目来源:664. 奇怪的打印机 有台奇怪的打印机有以下两个特殊要求: 打印机每次只能打印由 同一个字符 组成的序列。 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。 给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。 /** * @param {stri
阅读全文
摘要:题目来源:810. 黑板异或游戏 黑板上写着一个非负整数数组 nums[i] 。Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手。如果擦除一个数字后, 剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家游戏失败。 (另外,如果只剩一个数字,按位异或运算得到它本身; 如果无
阅读全文
摘要:题目来源:781. 森林中的兔子 森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。 我们将这些回答放在 answers 数组里。 返回森林中兔子的最少数量。 /** * @param {number[]} answers * @return {numb
阅读全文
摘要:题目来源:88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n, 这样它就有足
阅读全文
摘要:题目来源:377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 /** * @param {number[]} nums * @param
阅读全文
摘要:题目来源:1035. 不相交的线 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] == nums2[j] 且绘制的直线不与任何其他连线(非水平线
阅读全文
摘要:题目来源:690. 员工的重要性 给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。 比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。 那么员工 1 的数据结构是 [1, 15, [2]] ,
阅读全文
摘要:题目来源:554. 砖墙 你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和相等。 你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显
阅读全文
摘要:题目来源:692. 前K个高频单词 给一非空的单词列表,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。 /** 方法一:哈希表 + 排序 * @param {string[]} words * @param {number
阅读全文
摘要:题目来源:1738. 找出第 K 大的异或坐标值 给你一个二维矩阵 matrix 和一个整数 k ,矩阵大小为 m x n 由非负整数组成。 矩阵中坐标 (a, b) 的 值 可由对所有满足 0 <= i <= a < m 且 0 <= j <= b < n 的元素
阅读全文
摘要:效果图: 代码如下: <canvas id="canvas" width="800" height="400" style="background-color: cornflowerblue;"> </canvas> <script> let red = new Image(); let ye =
阅读全文
摘要:题目来源:1442. 形成两个异或相等数组的三元组数目 给你一个整数数组 arr 。 现需要从数组中取三个下标 i、j 和 k ,其中 (0 <= i < j <= k < arr.length) 。 a 和 b 定义如下: a = arr[i] ^ arr[i + 1] ^ ... ^
阅读全文
摘要:参考:Dva 源码解析 Dva 源码解析 隐藏在 package.json 里的秘密 随便哪个 dva 的项目,只要敲入 npm start 就可以运行启动。之前敲了无数次我都没有在意,直到我准备研究源码的时候才意识到:在敲下这行命令的时候,到底发生了什么呢? 答案要去 package.json 里
阅读全文
摘要:截止 2017.1,最流行的社区 React 应用架构方案如下。 路由: React-Router 架构: Redux 异步操作: Redux-saga 缺点:要引入多个库,项目结构复杂。 dva 是什么 dva 是 React 应用框架,将上面三个 React 工具库包装在一起,简化了 API,让
阅读全文
摘要:参考: Dva 概念 数据流向 数据的改变通常是通过用户交互行为或者浏览器行为(如路由跳转等)触发的,当此类行为会改变数据的时候可以通过 dispatch 发起一个 action,如果是同步行为会直接通过 Reducers 改变 State ,如果是异步行为(副作用)会先触发 Effects 然后流
阅读全文
摘要:import * as usersService from '../services/users'; export default { namespace: 'users', state: { list: [], total: null, }, reducers: { save(state, { p
阅读全文
摘要:题目来源:421. 数组中两个数的最大异或值 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。 进阶:你可以在 O(n) 的时间解决这个问题吗? 题解: x=ai⊕aj 等价于 aj=x⊕ai,设计一种「从高位到低位
阅读全文
摘要:题目来源:993. 二叉树的堂兄弟节点 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有
阅读全文
摘要:题目来源:13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做
阅读全文
摘要:题目来源:12. 整数转罗马数字 // 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 // 字符 数值 // I 1 // V 5 // X 10 // L 50 // C 100 // D 500 // M 1000 // 例如, 罗马数字 2 写做 II ,即为两个并列的
阅读全文
摘要:题目来源:1269. 停在原地的方案数 // 有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。 // 每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。 // 给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 st
阅读全文
摘要:题目来源:1310. 子数组异或查询 // 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 // 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor ... xo
阅读全文
摘要:题目来源:1734. 解码异或后的排列 // 给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。 // 它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。 // 比方说,如
阅读全文
摘要:参考: js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false preventDefault:它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为。当Event对象的cancelable为false时,表示没有默认行为,
阅读全文
摘要:参考:https://www.cnblogs.com/blzm742624643/p/10021388.html 一、算法介绍 Morris算法充分利用了二叉树叶子结点下的空间,从而可以在时间复杂度为O(N),空间复杂度为O(1)的条件下,前中后序遍历二叉树(不是完全二叉树也可以使用)。 而常见的遍
阅读全文
摘要:题目来源:872. 叶子相似的树 // 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 // 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 // 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 // 如果
阅读全文
摘要:参考: 1.https://www.jianshu.com/p/f841eb3c1006 2.https://blog.csdn.net/qq_31967985/article/details/109902310 阶段一:只支持链式调用不支持其他api // 定义promise中的三种状态 cons
阅读全文
摘要:题目来源:1723. 完成所有工作的最短时间 // 给你一个整数数组 jobs ,其中 jobs[i] 是完成第 i 项工作要花费的时间。 // 请你将这些工作分配给 k 位工人。所有工作都应该分配给工人,且每项工作只能分配给一位工人。 // 工人的 工作时间 是完成分配给他们的所有工作花费时间的总
阅读全文
摘要:题目来源: 7. 整数反转 // 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 // 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。 // 假设环境不允许存储 64 位整数(有符号或无符号)。 /** * @para
阅读全文
摘要:题目来源:1473. 粉刷房子 III // 在一个小城市里,有 m 个房子排成一排,你需要给每个房子涂上 n 种颜色之一(颜色编号为 1 到 n )。 // 有的房子去年夏天已经涂过颜色了,所以这些房子不需要被重新涂色。 // 我们将连续相同颜色尽可能多的房子称为一个街区。(比方说 houses
阅读全文
摘要:题目来源:1486. 数组异或操作 // 给你两个整数,n 和 start 。 // 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。 // 请返回 nums 中所有元素按位异或(XOR)后得到的结果。 /** * @pa
阅读全文
摘要:题目来源: 740. 删除并获得点数 // 给你一个整数数组 nums ,你可以对它进行一些操作。 // 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。 // 开始你拥有 0 个
阅读全文
摘要:题目来源: 1720. 解码异或后的数组 // 未知 整数数组 arr 由 n 个非负整数组成。 // 经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到
阅读全文

浙公网安备 33010602011771号