![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
Tong XU
欣赏简洁的代码是一种赏心悦目的事情。
展开
-
118. 杨辉三角
给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1],[1,4,6,4,1]]通过次数138,732提交次数199,577/** * @param {number} numRows * @return {number[][]} */var generate = function(numRow...原创 2020-12-07 21:35:40 · 244 阅读 · 0 评论 -
461. 汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。通过次数83,392提交次数106,673/** * @param {number} x * @param {number} y *...原创 2020-11-27 21:06:00 · 359 阅读 · 0 评论 -
454. 四数相加 II
给定四个包含整数的数组列表A , B , C , D ,计算有多少个元组 (i, j, k, l),使得A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过231 - 1 。例如:输入:A = [ 1, 2]B = [-2,-1]C = [-1, 2]D = [ 0, 2]输出:2解释:两个元组...原创 2020-11-27 19:02:59 · 317 阅读 · 0 评论 -
1370. 上升下降字符串
给你一个字符串s,请你根据下面的算法重新构造字符串:从 s中选出 最小的字符,将它 接在结果字符串的后面。从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。重复步骤 2 ,直到你没法从 s中选择字符。从 s中选出 最大的字符,将它 接在结果字符串的后面。从 s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它 接在结果字符串后面。重复步骤 5,直到你没法从 s中选择字符。重复步骤 1 到 6 ,直到 s中...原创 2020-11-25 21:06:22 · 134 阅读 · 0 评论 -
693. 交替位二进制数
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.示例 4:输入:n = 10输出:true解释:10 的二进制表示是:1010.示例 5:输入:n = 3输出:f.原创 2020-11-22 11:28:22 · 184 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 ...原创 2020-11-09 13:45:57 · 88 阅读 · 0 评论 -
1356. 根据数字二进制下 1 的数目排序
给你一个整数数组arr。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中1的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个 1 。[3,5,6] 有 2 个 1 。[7] 有 3 个 1 。按照 1 的个数排序得到的结果数组...原创 2020-11-07 11:27:57 · 143 阅读 · 0 评论 -
127. 单词接龙
给定两个单词(beginWord和 endWord)和一个字典,找到从beginWord 到endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例1:输入:beginWord = "hit",endWord ...原创 2020-11-05 16:58:51 · 124 阅读 · 0 评论 -
59. 螺旋矩阵 II
59. 螺旋矩阵 II难度中等257收藏分享切换为英文接收动态反馈给定一个正整数n,生成一个包含 1 到n2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]通过次数51,184提交次数65,283/** * @param {number} n * @return {number[][]} */var generateMatrix = function ...原创 2020-11-04 09:22:35 · 122 阅读 · 0 评论 -
58. 最后一个单词的长度
给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5通过次数136,056提交次数402,402来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/length-of-last-wo...原创 2020-11-04 08:33:09 · 89 阅读 · 0 评论 -
941. 有效的山脉数组
给定一个整数数组A,如果它是有效的山脉数组就返回true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在0 < i< A.length - 1条件下,存在i使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]示例 1:输入:[2,1]输出:false示...原创 2020-11-03 18:51:36 · 95 阅读 · 0 评论 -
463. 岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 :输入:[[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0...原创 2020-10-30 14:41:56 · 94 阅读 · 0 评论 -
148. 排序链表
给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围[0, 5 * 104]内-105<= Node.va...原创 2020-10-27 17:03:12 · 180 阅读 · 0 评论 -
1365. 有多少小于当前数字的数字
给你一个数组nums,对于其中每个元素nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个nums[i]你必须计算出有效的j的数量,其中 j 满足j != i 且 nums[j] < nums[i]。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释:对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。对于 nu...原创 2020-10-26 15:05:31 · 97 阅读 · 0 评论 -
1024. 视频拼接
你将会获得一系列视频片段,这些片段来自于一项持续时长为T秒的体育赛事。这些片段可能有所重叠,也可能长度不一。视频片段clips[i]都用区间进行表示:开始于clips[i][0]并于clips[i][1]结束。我们甚至可以对这些片段自由地再剪辑,例如片段[0, 7]可以剪切成[0, 1] +[1, 3] + [3, 7]三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, T])。返回所需片段的最小数目,如果无法完成该任务,则返回-1...原创 2020-10-24 13:54:45 · 23551 阅读 · 0 评论 -
237. 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入:head = [4,5,1,9], node = 1输出:[4,5,9]解释:给定你...原创 2020-10-23 17:12:29 · 120 阅读 · 0 评论 -
766. 托普利茨矩阵
如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。给定一个M x N的矩阵,当且仅当它是托普利茨矩阵时返回True。示例1:输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:在上述矩阵中, 其对角线为:"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]"。各条对角线上的所有元素均相同, 因此答案是Tr...原创 2020-10-22 14:34:18 · 120 阅读 · 0 评论 -
763. 划分字母区间
字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。提示:S的长度..原创 2020-10-22 14:11:22 · 122 阅读 · 0 评论 -
925. 长按键入
你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。示例 1:输入:name = "alex", typed = "aaleex"输出:true解释:'alex' 中的 'a' 和 'e' 被长按。示例 2:输入:name = "saeed", typed = "ssaaedd"输出:fals...原创 2020-10-21 09:46:04 · 95 阅读 · 0 评论 -
151. 翻转字符串里的单词(JS一行代码秒杀)
给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例 1:输入:"the sky is blue"输出:"blue is sky the"示例 2:输入:" hello world! "输出:"world! hello"解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:...原创 2020-10-20 17:19:12 · 234 阅读 · 0 评论 -
147. 对链表进行插入排序
对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3输出:..原创 2020-10-20 17:09:38 · 67 阅读 · 0 评论 -
845. 数组中的最长山脉
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i< B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)给出一个整数数组 A,返回最长 “山脉”的长度。如果不含有 “山脉”则返回 0。示例 1:...原创 2020-10-19 14:39:44 · 113 阅读 · 0 评论 -
547. 朋友圈
班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:输入:[[1,1,0],[1,1,0],[0,0,1]]输出:2解释:已知学生...原创 2020-10-18 20:19:11 · 184 阅读 · 0 评论 -
23. 合并K个升序链表
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists =...原创 2020-10-18 13:42:11 · 114 阅读 · 0 评论 -
116. 填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有next 指针都被设置为 NULL。示例:输入:{"$id":"1","left":{"$id":"2","left"...原创 2020-10-15 10:42:36 · 118 阅读 · 0 评论 -
814. 二叉树剪枝
给定二叉树根结点root,此外树的每个结点的值要么是 0,要么是 1。返回移除了所有不包含 1 的子树的原二叉树。( 节点 X 的子树为 X 本身,以及所有 X 的后代。)示例1:输入: [1,null,0,0,1]输出: [1,null,0,null,1]解释:只有红色节点满足条件“所有不包含 1 的子树”。右图为返回的答案。示例2:输入: [1,0,1,0,0,0,1]输出: [1,null,1,null,1]示例3:输入: [1,1,0,1,1,0,1,...原创 2020-10-12 11:22:42 · 90 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7限制:0 <= 节点个数 <= 5000来源:力扣(LeetCode)链接:https://leetcode-cn.com/pro...原创 2020-10-10 21:57:38 · 68 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-s...原创 2020-10-09 23:35:56 · 123 阅读 · 0 评论 -
剑指 Offer 32 - III. 从上到下打印二叉树 III
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong...原创 2020-10-09 22:49:36 · 69 阅读 · 0 评论 -
Express 4接受POST请求的body数据
第一种方式:// AJAX请求$.ajax({ type: 'POST', url: 'http://127.0.0.1:3000/', data: JSON.stringify({ username: 'xt', age: 15 }), contentType: 'application/json'原创 2020-10-04 09:28:41 · 1709 阅读 · 0 评论 -
查找重复元素
题目描述找出数组 arr 中重复出现过的元素示例1输入复制[1, 2, 4, 4, 3, 3, 1, 5, 3]输出复制[1, 3, 4]function duplicates(arr) { const map = new Map() const arr1 = [] arr.forEach((val) => { if(!map.has(val)) { map.set(val, 1)原创 2020-05-29 13:44:48 · 363 阅读 · 0 评论 -
添加元素
题目描述在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组示例1输入复制[1, 2, 3, 4], 10输出复制[1, 2, 3, 4, 10]function append(arr, item) { const arr1 = arr arr1.push(item) return arr1}...原创 2020-05-29 13:24:18 · 238 阅读 · 0 评论 -
JavaScript中&&与||的独特用法
在JavaScript中,&& 和||不仅用于 boolean 类型也用于对象。&&:如果&&左侧是为 false ,那么直接返回 false。console.log(false&&true);//falseconsole.log(false&&“abc”);//false统统直接返回false。如果...原创 2020-03-21 16:05:56 · 138 阅读 · 0 评论 -
#22 获取子元素属性
完成getChildAttributes函数,它接受一个 DOM 元素作为参数和一个属性名作为参数,你需要返回这个 DOM 的直接子元素的特定属性列表。例如:<ul id='list'> <li data-name="Jerry" class="item"><span>1</span></li> <li dat...原创 2020-03-19 17:08:33 · 595 阅读 · 0 评论 -
#49 时间停止
pause函数可以让一个函数暂停运行一段时间(ms)以后继续运行。例如:async function run () { console.log('Hello') await pause(1000) // 续一秒 console.log('World') // 一秒以后继续运行}请你完成pause函数的编写。const pause = async (time) ...原创 2020-03-19 16:19:22 · 607 阅读 · 0 评论 -
一个好用的分页插件 Ant Design Vue 中的List组件
<template> <div class="listv2-root"> <a-list :itemLayout="itemLayout" :size="encoding.size?encoding.size:size" :pagination="encoding.pagination !== false ?encod...原创 2019-12-27 17:12:23 · 5633 阅读 · 0 评论 -
d3.js 使用定时器
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>TEST-5</title> <script src="https://d3js.org/d3.v4.js"></script> <style type="t...原创 2019-12-26 09:52:36 · 644 阅读 · 0 评论 -
d3.js 监听过渡事件
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>TEST-5</title> <script src="https://d3js.org/d3.v4.js"></script> <style type="t...原创 2019-12-26 09:36:40 · 500 阅读 · 1 评论 -
d3.js 使用选择性过渡
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>TEST-5</title> <script src="https://d3js.org/d3.v4.js"></script> <style type="t...原创 2019-12-26 09:24:36 · 140 阅读 · 0 评论 -
d3.js 使用级联过渡
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>TEST-5</title> <script src="https://d3js.org/d3.v4.js"></script> </head> <...原创 2019-12-25 21:23:46 · 113 阅读 · 0 评论