自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 中等-LeetCode 147. 对链表进行插入排序

题目来源:对链表进行插入排序

2020-05-30 14:45:27 80

原创 中等-LeetCode15. 三数之和

题目来源:三数之和

2020-05-29 15:39:58 99

原创 中等-LeetCode 328.奇偶链表

题目来源:奇偶链表

2020-05-29 10:18:16 96

原创 简单-LeetCode 326. 3的幂

题目来源:3的幂

2020-05-29 08:46:10 110

原创 简单-LeetCode 69. x的平方根

题目来源:x的平方根

2020-05-28 21:40:11 204

原创 vue 安装element-ui及轮播图插件 vue-awesome-swiper 安装踩坑

出现的问题:采用npm安装一直不成功,网络问题,决定先安装cnpm安装cnpm, 看了一下博客,npm和cnpm(windows)安装步骤如果安装的npm是6.0+版本,好像可以跳过NODE_PATH的配置步骤,我直接跳过了该步,安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org安装element-ui(1) 安装cnpm i element-ui -S(2) 在main.js中引入imp

2020-05-26 00:45:23 651

原创 中等-LeetCode 64. 最小路径和

题目来源: 最小路径和

2020-05-25 09:30:56 108

原创 简单-LeetCode 232.用栈实现队列

题目来源: 用栈实现队列

2020-05-25 08:04:54 122

原创 困难-LeetCode 72. 编辑距离

题目来源:编辑距离给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例解题思路及代码1. 思路第一次做困难题,果然毫无思路,,,采用动态规划来解决。创建二维dp数组,dp[i][j]表示从word1到第i个位置转换成到word2到第j个位置的编辑距离。对于每对字符s1[i] 和 s2[j],有四种操作,若s1[i] = s2[j],直接跳过,不进行操作,

2020-05-24 10:15:44 170

原创 简单-LeetCode 225.用队列实现栈

题目来源:用队列实现栈代码/** * Initialize your data structure here. */var MyStack = function() { this.stack = new Array;};/** * Push element x onto stack. * @param {number} x * @return {void} */MyStack.prototype.push = function(x) { this.stack[

2020-05-24 07:34:47 108

原创 简单-LeetCode 面试题 04.04.检查平衡性

题目来源:检查平衡性实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例解题思路及代码1. 思路总的思路来说,对于二叉树中的每个结点,我们需要得到其左右子树的高度并进行比较,只要出现某个结点,其左右子树的高度相差超过1的情况,则该二叉树不是平衡树。2. 代码var isBalanced = function(root) { if (root == null) { return true; }

2020-05-23 23:07:46 222

原创 中等-LeetCode 22.括号生成

题目来源:括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例解题思路及代码1. 思路实际上是一个组合题,给定n,相当于对n个左括号和n个右括号进行排列组合。但是在从n个左括号和n个右括号的集合中取出元素进行组合时,要保证这个集合里剩下的左括号数量一定要小于等于右括号数量。在已经排列好的括号中,左括号的数量要大于等于右括号的数量。所以这也是递归终止的条件之一,在左右括号还没有用完的时候, 若排列中的左括号数量小于右括号的数量,这个排列就会

2020-05-23 22:56:41 96

原创 二叉树遍历之中序遍历

1.递归思想思路:1.对根结点的左子树进行中序遍历;2.对根结点进行访问;3.对根结点的右子树进行中序遍历。代码:参考:递归遍历二叉树const TreeNode = { val: 1, left: { val: 2, left: { val: 4, }, right: { val: 5...

2020-05-22 08:08:54 118

原创 二叉树遍历之后序遍历

1.递归思想思路:1.对根结点的左子树进行中序遍历;2.对根结点的右子树进行中序遍历;3.对根结点进行访问。代码:参考:递归遍历二叉树const TreeNode = { val: 1, left: { val: 2, left: { val: 4, }, right: { val: 5...

2020-05-22 08:06:42 101

原创 中等-LeetCode 55. 跳跃游戏

题目来源: 跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例解题思路及代码1. 思路思考过程:只要每个元素不为0,一定可以到达最后一个位置,当出现元素为0时,什么情况下,不能到最后一个位置?当0位于第一个元素时,若数组长度不为1,一定不可以,若长度为1,一定可以;0左边所有的元素与其的差,等于索引值之差,则一定不能到达最后一个位置。。。精选题解思路:不断更新数组中每个位置可以到达的最远距离

2020-05-21 22:42:21 137

原创 简单-LeetCode 面试题 16.07最大数值

题目来源:最大数值编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。示例解题思路及代码1.思路采用求平均值法:max(a,b) = ((a + b) + Math.abs(a - b)) / 2重点是如何实现求abs(a - b)。提供位运算思路。2. 代码方法1var maximum = function(a, b) { return ((a + b) + Math.abs(a - b)) / 2; };方法2var maxim

2020-05-21 13:43:22 245

原创 中等-LeetCode 106. 从中序与后序遍历序列构造二叉树

题目来源:从中序与后序遍历序列构造二叉树根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。示例解题思路及代码1.思路迭代思路:中序遍历会从最底层最左边的子结点自底向上遍历二叉树,后序遍历同样也是,采用迭代对二叉树进行先序遍历时,会自顶向下不断当前节点的左子节点,直到左子节点为空,而中序遍历则会从最底层最左边的左子节点开始遍历二叉树,所以对preorder数组进行访问时,当遍历至一个元素,等于inorder数组的第一个元素时,该元素即为最底层最左边的左子节点,

2020-05-20 17:10:05 80

原创 中等-LeetCode 105.从前序与中序遍历序列构造二叉树

题目来源: 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。示例解题思路及代码1. 思路找到各个子树的根结点,然后构造这个结点的左子树和右子树。递归:每次找到根结点的位置,在中序遍历中,根结点左边的即为左子树,右边的即为右子树,以根结点所在位置将中序遍历得到的数组分为左右两部分,即为左右子树,再根据左右子树相应的先序遍历顺序,调用递归来确定左右子树的结构。迭代:采用迭代对二叉树进行先序遍历时,会自顶向下不断当前节点的左子节点

2020-05-20 15:42:43 89

原创 简单-LeetCode 657. 机器人能否返回原点

题目来源: 机器人能否返回原点在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。示例解题思路及代码直接看代码var judgeCircle = function(moves) { return (move

2020-05-19 15:56:42 89

原创 中等-LeetCode 24.两两交换链表中的节点

题目来源:两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例解题思路及代码1. 思路两两一对的考虑链表中的节点,假设左边节点为left,右边节点为right,我们只要使left指向right.next,然后使right指向left,就可以完成这两个节点的交换。当left为空或者right为空,就是说最后不剩下节点或者只剩下一个节点,算法就可以终止了。还可以用递归来考虑:递归实际上就是将大问题不断

2020-05-19 08:42:53 79

原创 简单-LeetCode 面试题 01.02. 判定是否互为字符重排

题目来源:判定是否互为字符重排给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例解题思路及代码1. 思路暴力解法:遍历s1,若s2中包含该字母,则删除。当遍历至某个字母,s2中没有,则返回false;若遍历完s1,s2长度不为0,也返回false。但若出现重复元素会删除哪一个?新思路:将字符串转换为数组后进行排序,再转换为字符串进行比较。还可以用哈希表解决。将s1中的每个元素及出现的次数分别存放,检查s2中的每个字符以及出现次数是

2020-05-18 21:35:11 168

原创 简单-LeetCode 面试01.09 字符串轮转

题目来源:面试01.09 字符串轮转字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例解题思路及代码1. 思路若s2为s1旋转而成,其实质可以考虑成将s1从某处进行切割,并将切割后的两部分交换顺序进行拼接,即可得到s2。所以若将s2与其本身进行一次拼接,那形成的字符串中一定包含s1。取出s1后剩下的部分一定为s2。2.代码var isFlipedString = function(s1, s

2020-05-17 15:13:44 102

原创 简单-LeetCode 面试题 16.17. 连续数列

题目来源: 连续数列给定一个整数数组,找出总和最大的连续数列,并返回总和。示例解题思路及代码1. 思路总和最大的连续数列停止添加元素,有两种情况,一种是遍历至数组尾,一种是现在数组和小于0,因为若小于0,只会让后面的连续数列的和变小,所以我们会重新选择其下一个元素作为连续数列的开头,同时不断更新连续数列和的最大值(虽然是这么想,但好像觉得这种说法不太有说服力。。)动态规划:一开始想了很久,一直想着dp[n]表示以第n个元素作为连续数列第1个元素时的最大和。然后越想思路越混乱。。。创建dp

2020-05-16 20:37:23 328

原创 中等-LeetCode面试题 02.05 链表求和

题目来源:链表求和给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例解题思路及代码1. 思路思路很简单,每次对链表对应位求和,同时加上上一位的进位,然后记录当前位的值,并记录进位,进行链表下一个对应位置的求和,最后返回一个新的链表。2. 代码看看我一开始的代码:var addTwoNumbers = function(l1, l2) { if (l1 == null) {

2020-05-16 20:24:13 424

原创 利用vscode快速生成vue组件模板

文件 >> 首选项 >> 用户代码片段 >> 输入vue,回车 >> 定位到vue.json文件file >> preferences >> user snippets复制代码两种格式:参考代码1代码2创建后缀名为vue文件,在文件里面 输入tab...

2020-05-16 08:22:50 1603

原创 中等-LeetCode面试题17.09. 第k个数

题目来源:第k个数有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。示例解题思路及代码1. 思路初步思路:有一些数,其因数中一定至少有 3 5 7中的一个。找到这些数中的第k个数。创建长度为k的数组,将符合条件的数放入数组中,返回数组最后一个数。精选题解思路:其实我在想,为什么可以用动态规划。。。将上述符合条件的数称为丑数。第一个丑数 1 x3/x5/x7会得到

2020-05-15 20:39:07 1143

原创 简单-LeetCode 面试题58. I.翻转单词顺序

题目来源: I.翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例解题思路及代码1. 思路主要的思路就是,从字符串最后一个单词开始,倒着遍历字符串,取出字符串中的每一个单词放入结果数组中即可。采用双指针来实现,去除字符串的头尾空格,设置双指针i j,当i,j分别指向每个单词的左右边界时,取出对应单词,直到i遍历至字符串第一个字符,

2020-05-15 15:39:36 146

原创 中等-LeetCode 11.盛水最多的容器

题目来源:盛水最多的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例解题思路及代码1. 思路对于每条垂直线,如果选择比他长的,选择离他最远的那条比他长的垂直线,即可获得最大值;若选择比他小的,也要选择离他最远的那条线。2. 代码...

2020-05-14 23:07:40 207

原创 简单-LeetCode 876.链表的中间结点

题目来源:链表的中间结点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例解题思路及代码1.思路自己的思路:重点:如何找到中间结点?遍历一遍,进行计数,然后使哨兵结点的指向不断从头结点往后移动,直到遍历完一半的结点,此时返回哨兵结点指向的结点,即为所求结果。快慢指针设置两个指针,初始位置都指向头结点,慢指针每次走一步,快指针每次走两步,那快指针走的路程正好是慢指针走的两倍,当快指针走完整条链表,慢指针正好走到中间位置。这里要

2020-05-14 16:29:07 106

原创 简单-LeetCode 1122.数组的相对排序

题目来源:数组的相对排序给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例解题思路及代码1. 思路遍历arr2中每个元素,取出arr1中对应的元素放入结果数组中,同时删除arr1中对应的元素,最后res中存放了与arr2中对应顺序的元素,arr1中剩下arr2中没有的元素,

2020-05-14 00:07:25 303

原创 中等-LeetCode 面试题16. 数值的整数次方

题目来源: 数值的整数次方实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例解题思路及代码1. 思路二进制角度:若n可写成二进制数 n = bm...b3b2b1,则n = 1*b1 + 2*b2 + 4* b3 + ... +2^(m-1)bm,所以x^n = x^( 1*b1 + 2*b2 + 4* b3 + ... +2^(m-1)bm) = x^b1 * x^b2 *

2020-05-13 23:11:58 146

原创 中等-LeetCode 46.全排列

题目来源:全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例解题思路及代码做这题的时候,参照的是做第78题子集的模板,目前对递归理解的还不是很透彻,先挖个坑,1. 代码var permute = function(nums) { let track = []; let res = []; let backtrack = function(track) { if (track.length == nums.length) {

2020-05-13 20:45:25 133

原创 中等-LeetCode 78. 子集

题目来源:子集给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例解题思路及代码1.思路针对一个数组,它的子集,实际上就是考虑其中的每个元素,选或者不选的问题。如果同时对数组中每个元素考虑选或者不选,针对大数组肯定行不通。我们可以每次只考虑一个元素,新增元素时则对数组的子集集合中的每个子集进行扩充,此时数组的子集集合会变成原有的子集加上扩充之后的子集,直到遍历完数组中所有元素。2.代码var subsets = function(

2020-05-13 20:25:38 127

原创 中等-LeetCode 120. 三角形最小路径和

题目来源:三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。示例解题思路1. 思路考虑用动态规划解决,dp[n]表示在第n行累积的路径中的最小值。枚举第n行各个元素,其对应的最小路径中的最小值,即为dp[n]。自顶向下:对第n行中第m个元素,其状态只与第n-1行中的第m-1和第m个元素的状态有关,所以可以分三种情况讨论:m = 0, 元素状态只与上一行第m个元素的状态有关;m = row.length - 1, 元素状态只与上一行第m-1

2020-05-10 23:58:46 118

原创 使用js数组模拟队列和堆栈

使用js数组模拟队列和堆栈

2020-05-09 23:37:57 243

原创 安装vue脚手架

1.安装node.js2. npm install webpack -g3. npm install -g @vue/cli安装vue-cli 时一直出现问题搜了一些博客,1.有人说可能是网络原因造成的,可以使用淘宝镜像,安装vue脚手架报错A complete log of this run can be found in以及脚手架创建详细配置过程如何使用淘宝镜像?可参考:(1) vue开发搭建(npm安装 + vue脚手架安装)(2) vue-cli安装步骤2.有人说是要清理缓存

2020-05-09 22:25:59 144

原创 中等-LeetCode 54. 螺旋矩阵

题目来源:螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例解题思路及代码1. 思路自己思考的时候:m行,n列,第i行,第j列,i = 0,j++ >> j = n-1,i++; >> i=m-1; j-- ; >> j=0;i-- >> i=1,j++ >> j=n-2,i++ >> i=m-2,j-- >> j=1,i

2020-05-09 00:06:26 122

原创 简单-LeetCode 543.二叉树的直径

题目来源:二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例解题思路及代码1. 思路任意一条路径都可以看作以某个结点为起点,从其左子树和右子树分别向下遍历的路径进行拼接得到,以某个结点为起点的最长路径所经过的结点即为其左子树的深度加上其右子树的深度加上1,所以我们只要找到以每个结点为起点的最长路径中的最大值-1,即可得到二叉树的直径。2. 代码...

2020-05-08 22:16:20 109

原创 简单-LeetCode 121.买卖股票的最佳时机

题目来源:买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例...

2020-05-08 16:00:32 93

原创 中等-LeetCode 3.无重复字符的最长子串

题目来源:无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例解题思路及代码1.思路当第i个字符为无重复字符串的起始位置,不断增加子字符串长度直至出现重复字符,记录下这个长度即可2.代码var lengthOfLongestSubstring = function(s) { var left = 0; var max = 0;...

2020-05-07 00:26:53 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除