自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 乐扣中等题(133)js--克隆图

解题步骤:①深度或广度优先遍历所有节点;②拷贝所有节点,存储起来;③将拷贝的节点,按照原图的连接方法进行连接。首先是判断node,不符合条件直接返回即可,不用浪费时间。然后再书写完整的深度优先遍历的过程,随后需要拷贝节点并存储。拷贝的时候比较简单,只要用const nCopy=new Node(n.val)就可以了,现在不传入neighbors会自动变成一个空数组。存储可以巧妙地和原节点的遍历形成一个映射,将visited新建的Set改成Map,然后让n对应nCopy即可,至此.

2022-03-18 11:40:52 1007

原创 乐扣中等题(417)js--太平洋大西洋水流问题

解题步骤①新建两个矩阵,分别记录能流到两个大洋的坐标②从海岸线,多管齐下,同时深度优先遍历图,过程中填充上述矩阵③遍历两个矩阵,找出能流到两个大洋的坐标

2022-03-18 10:47:47 250

原创 乐扣困难题(65)js--有效数字

从慕课网课程中截来的图解题步骤:①构建一个表示状态的图;②遍历字符串,并沿着图走,如果到了某个节点无路可走就返回false;③遍历结束,如果走到了3/5/6就返回true,否则返回false其实整体思路不难,但是代码是抄来的,关键就是要能够画出来状态图for(c of s)其实就可以遍历s中的每一个元素,但是加上s.trim()的时候,就可以将前后的空格去除,减小资源占用率/** * @param {string} s * @return {boolean} */va..

2022-03-17 11:34:57 148

原创 乐扣简单题(144)js--二叉树的前序遍历

解法一:递归版要注意,在用递归法做前序遍历的时候,需要声明一个数组,将所有值按顺序push进去。所以要将数组的声明放在函数体的外面,return也是,以此形成一个闭包,函数体中push的最后结果将会被返回。如果将数组声明和return都写在函数体中,有几个元素被push进去将会产生几个数组/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (

2022-03-17 11:01:02 1220

原创 乐扣简单题(112)js--路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。遇到看这条路径上的节点值的和,就考虑到深度优

2022-03-16 16:06:00 225

原创 乐扣简单题(94)js--二叉树的中序遍历

中序遍历可以有递归方法和非递归方法解法一:递归方法/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null

2022-03-16 15:41:39 1153

原创 乐扣中等题(102)js--二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。层序遍历就像是广度优先遍历,在遍历的过程中要记录每一个节点的层级,并将其添加到不同的数组中去。广度优先遍历的实现是:①新建一个队列;②把队头出队并访问;③把队头的children挨个入队;④重复第二、三步,直到队列为空。解法一:首先还是要判断,在root为空的时候,直接返回一个空数组。然后新建一个数组,在数组内有元素的时候一直重复以下工作,首先把队头的元素弹出并且赋给n,如果

2022-03-16 11:18:25 696

原创 乐扣简单题(111)js--二叉树的最小深度

刚学了一个最大深度,又来了一个最小深度,惯性思维认为最小深度也是用深度优先遍历呗,取得每一个元素的层级之后,再判断最小的符合条件的层级是谁就可以了呀。其实这样想也是对的,但是在实际运行过程中会比较浪费,因为明明在遇到第一个满足条件的元素的时候就已经可以停止了,你却偏偏要遍历全部的元素然后再判断。所以对于最小深度而言,比较合适的方式是采用广度优先遍历。在广度遍历的过程中,遇到叶子节点就可以停止遍历,返回节点层级。解法一:深度优先遍历/** * Definition for a binary

2022-03-15 17:25:16 1285

原创 乐扣简单题(104)js--二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。二叉树的遍历其实是比较简单的,有很多方法,这里需要求的是二叉树的最大深度,就可以用深度优先遍历来遍历整棵树。额外增加的步骤就是要有一个变量来记录每个节点的层级,同时需要不断地刷新最大深度,最后返回这个变量即可。/** * Definition for a binary tree node. * function TreeNode(val, left, right

2022-03-15 16:05:26 306

原创 乐扣困难题(76)js--最小覆盖子串

给你一个字符串 s 、一个字符串 t ,返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。首先是做一个滑动的窗口,然后新建一个字典map,把我们需要匹配的字符串的内容全部放进去,key是值本身,value就是里面有几个这样的值。窗口一直向右滑动,都是写在while循环中的,当r小于字符串s的长度的时候一直进行这项工作。如果字典中有对应的元素,就可以往字典中覆盖一个键值对,将value的值减一。为了方便看什么时候元素已经全部找到了,调

2022-03-14 17:33:46 538

原创 乐扣中等题(3)js--无重复字符的最长子串

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。/** * @param {string} s * @return {number} */var lengthOfLongestSubstring = function(s) { let l=0; let res=0; const map=new Map(); for(let r=0; r<s.length; r++) { if(map.has(s[r]) &&a...

2022-03-13 22:51:05 650

原创 乐扣简单题(349)js--两个数组的交集

求数组的交集,无序且唯一首先用集合对nums1去重,遍历nums1,筛选出nums2也包含的值判断nums2中是否包含某个值,如果是数组,可以用nums2.includes(n)如果是集合,可以用new Set(nums2).has(n)/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */var intersection = function(nums1, nums2) {

2022-03-11 21:55:05 82

原创 instanceof原理

instanceof可以用来准确判断数组的类型。原因是:如果A沿着原型链能找到B.prototype,那么A instanceof B就是true解法:遍历A的原型链,如果找到B.prototype,返回true,否则返回falseconst instanceof=(A,B)=> { let p=A; while(p) { if(p===

2022-03-11 21:16:52 258

原创 乐扣简单题(141)js--环形链表

对于环形链表的判断,想象成两个人在跑步,如果有环,终会见面设置一个快指针和一个慢指针,如果二者有重逢,则返回true,没有就返回false/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} head * @return {boolean} */

2022-03-11 20:28:39 276

原创 乐扣中等题(946)js--验证栈序列

其实是抱着试试看的态度来写的,感觉颇具有挑战力,第一次写出来个半成品还是有点成就感的,遇到的小坑就是,忘记了const是不可以修改的,要用let写变量题目相当于是给了一个数组的两种排序方式,一边是push进去的,一遍是pop出来的,让看经过一番操作,栈是否为空。刚巧最近看过栈相关的知识,其实也就只会个push和pop,浅浅尝试一下先定义数组来模拟栈,遍历pushed数组,将元素push进去栈,在过程中,只要是栈不空的情况下,判断栈顶元素和我们想要pop出去的元素是否一致,相等则弹出,并且pope

2022-03-11 16:39:28 191

原创 乐扣简单题(83)js--删除排序链表中的重复元素

本来以为这道题很简单,又是有序,那不就是简单判断一下当前的这个和下一个是否相等,相等的话直接就把next指针指向next.next,看起来好像很简单,但是毕竟是leetcode的题目,还是有一点小坑的。惯性思维会将重复元素认为是2个,所以一旦有超过两个的重复元素出现,就会卡问题了。最简单的解决方式就是在删除节点之后不要将指针指向下一个,一个一个判断,比较靠谱。/** * Definition for singly-linked list. * function ListNode(val,

2022-03-11 16:07:06 389

原创 乐扣中等题(2)js--两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。遍历两个被相加的链表,模拟相加操作,将个位数追加到新链表,.

2022-03-11 15:34:19 917

原创 乐扣简单题(206)js--反转链表

链表的遍历是简单的,上文已经讲过,对于链表的反转,可以设置两个一前一后的指针,用p1进行遍历,然后用p2滞后于p1一点,将p1.next指向p2话不多说,上代码/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : n

2022-03-11 14:27:01 331

原创 乐扣简单题(237)js--删除链表中的节点

链表是由多个元素组成的列表,元素存储不连续,用next指针连在一起。数组和链表的区别:数组增删非首尾元素时往往需要移动元素链表增删首尾元素不需要移动元素,只需要更改next指向即可JS中没有链表,但是可以用object来模拟链表const a={val='a'}...const d={val='d'}a.next=b;b.next=c;c.next=d;/*这样就形成了链表*//*遍历链表*/let p=a;while(p) {console.log(p.val)

2022-03-11 11:13:04 1249

原创 乐扣简单题(933)js--最近的请求次数

队列是一个先进先出的数据结构,JS中没有队列,但可以用Array实现队列所有的功能const queue=[];queue.push(1);queue.push(2);const item1=queue.shift();const item2=queue.shife();/*移除数组的第一个元素,并且返回它*/最近的请求次数,分析题目,就是说,有新的请求就入队,在3000ms之前发出的请求就出队,队列的长度就是请求的次数。这么看来,其实简单,但是在新建队列的时候会发现,新建的队列需

2022-03-07 22:46:31 220

原创 乐扣简单题(20)js--有效的括号

栈是一个先进后出的数据结构,在JS中没有栈,但是可以用Array实现栈的所有功能,因此可以定义数组来模拟栈。const stack=[];stack.push(1);stack.push(2);const item1=stack.pop();const item2=stack.pop();/*把数组最后一个元素pop出去,并且可以获取其值*/有效括号的解决,可以采取新建一个栈,在遇到左括号的时候入栈,遇到和栈顶括号类型匹配的右括号出栈,类型不匹配时直接不合法,最后栈空合法,否则不合法

2022-03-07 22:15:05 484

原创 CSS部分知识点汇总--前端实习备战②

首先就是发现自己遗漏了关于移动端和flex的学习,随后补上1、CSS选择器css选择器种类很多,标签选择(本身),id选择器(#),class选择器(.)。原子类选择器:常用的字号、颜色、行高等写成单独的类方便使用复合选择器:后代(空格),交集(挨着写),并集(,)元素关系选择器:子(>),相邻兄弟(+),通用兄弟(~)序号选择器: :nth-child(n)属性选择器:img[alt]!import声明的样式优先级最高,继承得到的优先级最低2、CSS中无继承性属性

2022-02-25 16:54:27 252

原创 乐扣简单题26(js)--删除有序数组中重复项

由于要求只能在原本的数组上进行修改,莫名之中就增加了难度还是参考大佬们的题解才思考出来的其实就是因为数组自身是有序的,所以第一项肯定是没有问题的,重点应该放在后面的项上设置一个快、一个慢先让j=0,这一个参数相当于记录有几个不重复的数,随后当有不重复的时候就由i赋给j返回的这个j相关的默认就是数组的位数了var removeDuplicates = function(nums) { var j=0; for(var i=1; i<nums.length;

2022-02-24 22:25:30 277

原创 乐扣简单题14(js)--最长公共前缀

简单题一点都不简单啊有被虐到但是看了大神们的解题 也总结出来一个小思路坚持 就是胜利!1、既然是最长公共前缀,那么起决定性因素的就是数组中最短的那个元素,首先需要找到最短的那个元素长度是多少,当然了,如果这个数组自己本身的长度为0就不必多说了。首先就是把数组中第一个元素当作最短的元素,参数提取出它的字符串还有长度,接下来遍历整个数组,用三元运算符,搞定最短的元素的长度。2、找到了最短的元素之后,就是比较整个元素有几位和其他剩余元素是完全相等的,对这个元素的位数进行遍历,将第一个元素t

2022-02-24 16:58:44 408

原创 乐扣简单题13(js)--罗马数字转整数

给定一个罗马数字,将其转换成整数罗马数字有一个map,首先应该建立一个const map表格,将罗马数字的表示和整数联系在一起,而后对输入的罗马数字s进行一个按位的比对。由于二位的罗马数字优先级更高,想到了&&运算中的短路运算,首先将位数放在前面判断,&&右边放在map中是否会找到这个二位的字符,如果可以找到短路成功,直接在结果上加这个二位的数值,位数向后挪2,如果没有,在结果上加被短路的一位罗马数字,尾数向后挪1,以此类推。var romanToInt = f

2022-02-24 15:44:21 411

原创 力扣简单题9(js)--回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。注意事项小白考虑事情比较简单,直接将整数x转为字符串,遍历字符串,用第一个和最后一个比较是否

2022-02-24 15:22:00 451

原创 力扣简单题1(js)--两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。注意事项1、用户输入数字如何写为数组

2022-02-24 14:48:52 250

原创 HTML部分知识点汇总--前端实习备战①

1、src和href的区别src:常用于img或frame元素,嵌入当前,下载并应用到文档内,解析该元素会暂停资源的下载和处理,故js脚本一般放在底部。href:超文本引用,常用于a、link等,建立链接关系,并行下载。2、HTML语义化用合适的标签做正确的事机器友好,SEO,爬虫可获取有效信息开发者友好,结构清晰,便于开发维护3、DOCTYPE(文档类型)作用<!DOCTYPE html>文档类型声明,用于高速浏览器(解析器)按什么样的文档定义来解析文档,

2022-02-23 16:11:24 250

空空如也

空空如也

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

TA关注的人

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