leetcode
aminwangaa
终究是走上了勤能补拙的路~~~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【JS排序】
JS排序之快速排序,冒泡排序,插入排序原创 2023-02-12 20:49:58 · 129 阅读 · 0 评论 -
剑指offer39.数组中出现次数超过一半的数字 javascript
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路: 将数组转换成对象, 将数字本身转成key,将出现次数转成value通过for in循环 找出出现次数大于数组长度一半的键值对 取出目标键/** * @param {number[]} nums * @return {number} */var majorityElement = function(nums) { const obj = {} for原创 2021-03-22 14:32:40 · 186 阅读 · 0 评论 -
合并两个有序链表 javascript
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode原创 2021-03-11 13:46:13 · 152 阅读 · 0 评论 -
有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。const map = new Map()map.set(")", "(")map.set("}", "{")map.set("]", "[")var isValid = function(s) { if (s.length % 2) return false let arr = [] l原创 2021-03-11 13:28:25 · 83 阅读 · 0 评论 -
剑指offer27.二叉树的镜像 javascript
请完成一个函数,输入一个二叉树,该函数输出它的镜像。4/ \ 2 7/ \ / \1 3 6 9镜像输出:4/ \7 2/ \ / \9 6 3 1/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @原创 2021-02-24 14:57:09 · 155 阅读 · 0 评论 -
剑指offer25.合并两个排序的链表 javascript
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */function ListNode原创 2021-02-24 14:43:46 · 167 阅读 · 0 评论 -
剑指offer24.反转链表 javascript
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL//剑指offer24.反转链表 javascript/** * @param {number[]} nums * @return {number[]} *//** * Definition for singly-linked list. * functi原创 2021-02-24 13:56:23 · 185 阅读 · 0 评论 -
剑指offer22.链表中倒数第k个节点 javascript
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。//剑指offer22.链表中倒数第k个节点 javascript/** * @param {number[]} nums * @return {number[]} *//** * Definition for singly-linked list原创 2021-02-24 11:46:37 · 175 阅读 · 0 评论 -
剑指offer21.调整数组顺序使奇数位于偶数前面 javascript
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。/** * @param {number[]} nums * @return {number[]} */// 第一种 耗时短 const exchange = function(nums) { const left = [] const right = [] for (let item of nums) { item % 2 === 0 ? right.push原创 2021-02-24 11:29:12 · 129 阅读 · 0 评论 -
剑指offer18.删除链表的节点 javascript
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */// const head = {// val: -3,// next: {// val: 5,// next: {//原创 2021-02-24 11:22:16 · 142 阅读 · 0 评论 -
剑指offer17.打印从1到最大的n位数 javascript
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。const printNumbers = function(n) { let str = "9" let numArr = [...new Array(n).keys()] const targetNum = numArr.reduce((prev) => prev + str, "") return [...new Array(Number(targetN原创 2021-02-24 11:06:30 · 141 阅读 · 0 评论 -
两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next原创 2021-02-22 16:52:45 · 93 阅读 · 0 评论 -
剑指offer07.重建二叉树 javascript
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */function TreeNode(val) { this.val = val; this.left原创 2021-02-22 16:51:56 · 143 阅读 · 0 评论 -
剑指offer10- II. 青蛙跳台阶问题 javascript
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。/** * @param {number} n * @return {number} */var numWays = function(n) { // 跳级台阶 只有 1级 或者 2级 // 当台阶大于等于2时 台阶跳法为前两次的总和 if (n === 0 || n ==原创 2021-02-14 10:42:46 · 203 阅读 · 0 评论 -
剑指offer10-1.斐波那契数列 javascript
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。/** * @param {number} n * @return {numbe原创 2021-02-14 00:35:47 · 210 阅读 · 1 评论 -
剑指offer09. 用两个栈实现队列 javascript
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )var CQueue = function() { this.queue = []};/** * @param {number} value * @return {void} */CQueue.prototype.appendTail = function(val原创 2021-02-14 00:02:11 · 189 阅读 · 1 评论 -
剑指offer06. 从尾到头打印链表 javascript
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} head * @return {number[]} */var reversePrint = function(head) {原创 2021-02-12 21:32:17 · 136 阅读 · 0 评论 -
剑指offer05.替换空格 javascript
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。/** * @param {string} s * @return {string} */var replaceSpace = function(s) { // 通过正则匹配所有空白符 替换成 %20 // return s.replace(/ /g, '%20') return s.replace(/\s/g, '%20')};...原创 2021-02-12 21:23:44 · 134 阅读 · 0 评论 -
剑指offer04.二维数组中的查找 javascript
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。/** * @param {number[][]} matrix * @param {number} target * @return {boolean} */var findNumberIn2DArray = function(matrix, target) { if (matrix.length =原创 2021-02-12 21:09:26 · 139 阅读 · 0 评论 -
剑指offer03.数组中重复的数字 javascript
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。下面的解法都是找到从左到右第一个重复的数字/** * @param {number[]} nums * @return {number} */var findRepeatNumber = function(nums) { // const newNums = new Set()原创 2021-02-12 20:37:52 · 194 阅读 · 2 评论 -
1689. 十-二进制数的最少数目
var minPartitions = function(n) { const nums = n.split("") const max = Math.max(...nums) if (max >= 2) return max return 1};原创 2021-02-07 16:47:55 · 113 阅读 · 0 评论 -
奇数值单元格的数目 JS
给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0。另有一个索引数组 indices,indices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1。请你在执行完所有 indices 指定的增量操作后,返回矩阵中 「奇数值单元格」 的数目。示例 1:输...原创 2019-11-11 16:47:02 · 216 阅读 · 0 评论 -
IP地址无效化 JS
给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。示例 1:输入:address = “1.1.1.1”输出:“1[.]1[.]1[.]1”示例 2:输入:address = “255.100.50.0”输出:“255[.]100[.]50[.]0”提示:给出的 address ...原创 2019-11-11 15:20:50 · 522 阅读 · 0 评论 -
宝石与石头 JS
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出:...原创 2019-11-11 15:12:55 · 253 阅读 · 0 评论 -
猜数字 js
小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3示例 1:输入:guess = [1,2,3], answer = [1,2,3]输出:3解释:小...原创 2019-11-11 14:38:59 · 225 阅读 · 0 评论 -
回文数 js
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。来源:力扣(L...原创 2019-11-11 14:18:35 · 540 阅读 · 0 评论 -
整数反转 js
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)...原创 2019-11-11 14:16:19 · 573 阅读 · 0 评论 -
两数之和 JS
暴力法使用两层循环,外层循环计算当前元素与 targettarget 之间的差值,内层循环寻找该差值,若找到该差值,则返回两个元素的下标。时间复杂度:O(n^2)O(n 2)。var twoSum = function(nums, target) { for (var i = 0; i < nums.length; i++) { var dif = ta...原创 2019-11-04 12:58:06 · 1210 阅读 · 0 评论 -
1688. 比赛中的配对次数
var numberOfMatches = function(n) { if (n === 1) return 0 let nums = n % 2 ? (n - 1) / 2 + numberOfMatches((n - 1) / 2 + 1) : n / 2 + numberOfMatches(n / 2) return nums};var numberOfMatches = function(n) { let nums = 0 if (n % 2) {原创 2021-02-07 16:39:39 · 131 阅读 · 0 评论 -
1684. 统计一致字符串的数目
内存消耗 50.6 MBvar countConsistentStrings = function(allowed, words) { return words.reduce((prev, item) => { const flag = item.split("").every(item => allowed.includes(i)) return flag ? prev + 1 : prev }, 0)}; 内存消耗 46.7 MBw原创 2021-02-07 16:10:31 · 90 阅读 · 0 评论
分享