leetcode Javascript
啊啊怪
这个作者很懒,什么都没留下…
展开
-
leetcode--二叉树的镜像
请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 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 =原创 2020-11-28 14:06:11 · 116 阅读 · 1 评论 -
leetcode--链表中倒数第k个节点
题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.思路建立两个指针,快指针和慢指针,快指针和慢指针之间的间隔指定为k值,保持他们的间隔为k即可/** * Definition for sing原创 2020-11-21 14:32:29 · 147 阅读 · 0 评论 -
leetcode--数组中重复的数字
1、第一种方法代码(返回Number类型)/** * @param {number[]} nums * @return {number} */var findRepeatNumber = function(nums) { var arr=[]; for(let i=0;i<nums.length;i++){ if(arr.indexOf(nums[i])===-1){ arr.push(nums[i]) }else{原创 2020-11-20 07:56:07 · 76 阅读 · 0 评论 -
leetcode--二维数组中的查找
思路:在右上角开始遍历数组,如果当前元素值比target大,说明当前元素的下边的所有元素都一定大于目标值;如果当前元素比target小,说明当前元素的左边的所有元素都一定小于目标值var findNumberIn2DArray = function(matrix, target) { let arr1Length=matrix.length //数组为空时返回false if(!arr1Length) return false let arr2Length=matrix原创 2020-11-20 07:55:24 · 81 阅读 · 0 评论 -
leetcode--替换空格
1、第一种方法使用split+join方法1.1 String split()将一个字符串切分为一个由字符串组成的数组概要string.split(delimiter,limit)参数delimiter:string切分处的字符串或正则表达式limit:这个可选的整数指定已返回数组的最大长度。如果指定,则最多返回数量为这个数字的子串。如果没有指定,则将切分整个字符串,无论结果数组有多长返回一个由字符串组成的数组,通过在由delimiter界定的边界处切分string为子串创建。返回数组中原创 2020-11-20 07:54:46 · 96 阅读 · 0 评论 -
leetcode--从尾到头打印列表
1、第一种方法使用了栈的原理/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} head * @return {number[]} */var reversePrint = function(head) { let arr1=[] w原创 2020-11-20 07:54:16 · 78 阅读 · 0 评论 -
leetcode--用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )var CQueue = function() { this.arr1=[] this.arr2=[]};/** * @param {number} value * @return {void} */CQueue.prototype.append原创 2020-11-20 07:53:40 · 192 阅读 · 0 评论 -
leetcode--斐波那契数列
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。方法一(使用数组存储)分析:将已经计算好的数值存储到数组中,等下次需要使用的时候直接从数组中取出。代码原创 2020-11-20 07:52:58 · 130 阅读 · 0 评论 -
leetcode--旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0方法一:分析:先让数组排序,然后再取第一个元素Array.sort()对数组元素进行排序概要array.sort()array.sort(orderfunc)原创 2020-11-20 07:52:14 · 227 阅读 · 0 评论 -
leetcode--二进制中1的个数
请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 0000000原创 2020-11-20 07:51:26 · 124 阅读 · 0 评论 -
leetcode--打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]方法一(简单粗暴法)分析:当n=1时,最大的n位数为9;当n=2时,最大的n位数为99;当n=3时,最大的n位数为999所以得出结论,最大的n位数=10n−110^{n}-110n−1Math.pow(x,y),返回x的y次方,xyx^{y}xy代码/** * @param {nu原创 2020-11-19 22:17:25 · 123 阅读 · 0 评论 -
leetcode--删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 ->原创 2020-11-19 22:16:51 · 72 阅读 · 0 评论 -
leetcode--数值的整数次方
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25方法(采用递归)分析:在n为正数的情况下x4x^{4}x4=x2x^{2原创 2020-11-19 22:16:21 · 105 阅读 · 0 评论 -
leetcode--调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。方法一(使用Array.concat)Array.concat()链接数组概要array.concat(value, ...)参数value,...:任意个要链接到array中的值返回值一个新数组,包含array的元素,以及链接的新元素描述concat原创 2020-11-19 22:15:03 · 155 阅读 · 0 评论 -
leetcode--重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回以下的二叉树 3 / \ 9 20 / \ 15 7Array.slice (start, end)返回一个新数组,包含array中从start一直到end之间的所有元素(包含start指定的元素,但不包含end指定的原创 2020-11-19 22:14:33 · 149 阅读 · 1 评论 -
leetcode--查找两个字符串的最长子串
题目:编程实现查找两个字符串的最大公共子串示例:“aocdfe"和"pmcdfa"最大公共子串为"cdf”注:最大公共子串有不止一个时,只输出第一个最大子串代码function findLongestCommonStr(str1, str2) { let commonStr = '', L1 = str1.length, L2 = str2.length; //取最短字符串 let shortStr = L1 > L2 ?原创 2020-11-19 22:05:07 · 774 阅读 · 0 评论