![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的前端
文章平均质量分 55
做梦永远认真
这个作者很懒,什么都没留下…
展开
-
动态规划&&贪婪算法——JavaScript学习路线
动态规划求一个问题最优解(最大值或最小值),该问题可以分解为若干子问题从此再也不怕动态规划了,动态规划解题方法论大曝光 !| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV13Q4y197Wg/?spm_id_from=333.788动归基础:509、70、746、62、63、343、96背包问题:(背包基础)01、0416、1049、0494、0474 (完全背包)05...原创 2022-05-09 16:11:18 · 171 阅读 · 0 评论 -
排序&递归算法——JavaScript学习路线
二分查找、归并排序、快速排序二维数组搜索路径:回溯法、递归最优解,多个子问题:动态规划(自上而下、自下而上)子问题特殊选择:贪婪算法查找:顺序查找、二分查找、哈希表查找和二叉排序树查找(二叉搜索树)二分查找:在排序的数组查找一个数字或者统计某个数字出现次数;排序:插入排序、冒泡排序、归并排序、快速排序等*递归函数中调用自己会导致死递归,栈溢出;递归时使用setTimeout(fn,0)不会导致栈溢出错误;...原创 2022-03-02 21:48:30 · 719 阅读 · 0 评论 -
二分查找&树模板——Javascript清晰学习路程
二分查找树迭代法递归法原创 2022-02-22 17:18:57 · 316 阅读 · 0 评论 -
javaScript力扣刷题——回溯&排序&广度优先
简单回溯401. 二进制手表回溯法 仍有问题没有解决原创 2022-01-18 16:56:55 · 813 阅读 · 0 评论 -
javaScript力扣刷题——二分查找and双指针
二分查找,双指针原创 2022-01-12 12:59:00 · 383 阅读 · 0 评论 -
javaScript力扣刷题——简单树(一)
104. 二叉树的最大深度226617108100669110101235原创 2022-01-07 16:39:31 · 811 阅读 · 0 评论 -
javaScript力扣刷题——简单字符串(一)
20. 有效的括号937. 重新排列日志文件415. 字符串相加原创 2022-01-04 22:31:39 · 465 阅读 · 0 评论 -
javaScript力扣刷题——简单栈
20. 有效的括号155. 最小栈232. 用栈实现队列496. 下一个更大元素 I682. 棒球比赛225. 用队列实现栈原创 2021-12-29 15:35:37 · 366 阅读 · 0 评论 -
javaScript力扣刷题——简单哈希表(二)
219. 存在重复元素 II原创 2021-12-25 12:02:07 · 107 阅读 · 0 评论 -
javaScript力扣刷题——简单哈希表(一)
1. 两数之和771. 宝石与石头136. 只出现一次的数字202. 快乐数463. 岛屿的周长219. 存在重复元素 II217. 存在重复元素349. 两个数组的交集242. 有效的字母异位词原创 2021-12-22 15:22:03 · 168 阅读 · 0 评论 -
javaScript力扣刷题——简单链表(三)
83. 删除排序链表中的重复元素自己想的笨蛋方法,新建一个链表,head循环不一样的记录到新链表。var deleteDuplicates = function(head) { if(head==null||head.next==null){return head;} let node = new ListNode(null); let p = node; while(head!=null){ if(p.val !=head.val){p.next原创 2021-11-24 15:45:52 · 519 阅读 · 0 评论 -
javaScript力扣刷题——简单链表(二)
141. 环形链表快慢指针,若有循环两指针终会相遇。注意!!!考虑好next在哪,条件是什么,是否有下一个节点。var hasCycle = function(head) { if(head==null||head.next==null){return false;} let fast = head.next; let slow = head; while(slow!=fast){ if(fast==null||fast.next==null){原创 2021-11-22 15:52:49 · 689 阅读 · 0 评论 -
javaScript力扣刷题——简单链表(一)
21. 合并两个有序链表第一次看链表的题,完全不知道链表该如何表示。即使题目给的是数组形式,但是不可以使用数组进行排序的。因为格式是链表。非递归方法/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next)原创 2021-11-13 11:22:33 · 1003 阅读 · 0 评论 -
javaScript力扣刷题——简单数组(三)
88. 合并两个有序数组splice()方法向/从数组添加/删除项目,并返回删除的项目。可以添加。var merge = function(nums1, m, nums2, n) { nums1.splice(m,n,...nums2); nums1.sort(function(a,b){return a-b});};splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。var merge = function(nums1, ..原创 2021-11-08 17:22:45 · 438 阅读 · 0 评论 -
javaScript力扣刷题——数组(二)
66. 加一第一次忘记考虑,只有[9]->[1,0]的情况。var plusOne = function(digits) { var len = digits.length-1; for(let i =len;i>=0;i--){ digits[i]++; if(digits[i]==10){ digits[i]=0; if(i==0){ .原创 2021-11-01 21:32:07 · 323 阅读 · 0 评论 -
javaScript力扣刷题——数组(一)
刷题第一天刷题顺序是频率,b站小姐姐提供1. 两数之和我的答案var twoSum = function(nums, target) { for(let i= 0;i<nums.length;i++){ for(let j=i+1;j<nums.length;j++){ if(nums[i]+nums[j]==target) {return [i,j]} } }};暴力求解原创 2021-10-26 21:30:07 · 157 阅读 · 0 评论 -
js基础数据结构(插入、删除、是否存在)
1.push()方法会将元素插入到数组的末尾,而unshift()方法会将元素插入到数组的开头。2.pop()会从数组的末尾移除一个元素,而shift()会从数组的开头移除一个元素。3.splice()可以让我们从数组中的任意位置连续删除任意数量的元素。splice(a,b)的第一个参数代表从数组中的哪个索引开始移除元素,而第二个参数表示要从数组中的这个位置开始删除多少个元素。splice(a,b,c)在a的位置添加c元素(一个或多个,间隔)4.slice()不会修改...原创 2021-10-14 17:17:42 · 170 阅读 · 0 评论 -
调试代码常用
有许多方法可以与console一起使用来输出消息。1.控制台log(输出内容)warnclear()清除控制台2.使用typeof检查变量的数据结构或类型。console.log(typeof 你想查看类型的内容);JavaScript 有六种原始(不可变)数据类型:Boolean、Null、Undefined、Number、String和Symbol(ES6 中新增的),和一种可变的数据类型:Object。 注意:在 JavaScript 中,数组在本质...原创 2021-10-13 17:40:12 · 150 阅读 · 0 评论 -
正则表达式,字符串匹配、搜索、替换
1.匹配字符myWant = /code/; //不用引号myWant.test(sentence)原创 2021-10-09 17:09:13 · 3860 阅读 · 0 评论 -
Promise 构造函数
Promise基础用法constmyPromise = new Promise((resolve,reject)=>{if(condition){resolve();}else{reject();}}) ;makeServerRequest.then(result=>{console.log(result);});makeServe...原创 2021-09-28 21:36:59 · 52 阅读 · 0 评论 -
es6构造函数
es6中class语法只是简单地替换了构造函数constructor的写法:class SpaceShuttle { constructor(targetPlanet) { this.targetPlanet = targetPlanet; }}const zeus = new SpaceShuttle('Jupiter');应该注意class关键字声明了一个新的函数了解构造函数JS 中构造函数和普通函数的区别_灵灵7的博客-CSDN博客_构造函数1、构...原创 2021-09-17 16:42:40 · 82 阅读 · 0 评论 -
rest 操作符与函数参数一起使用,spread运算符展开数组项
ES6 推出了用于函数参数的rest 操作符帮助我们创建更加灵活的函数。 rest 操作符可以用于创建有一个变量来接受多个参数的函数。 这些参数被储存在一个可以在函数内部读取的数组中。请看以下代码:function howMany(...args) { return "You have passed " + args.length + " arguments.";}console.log(howMany(0, 1, 2));console.log(howMany("string", n.原创 2021-09-17 15:45:40 · 162 阅读 · 0 评论 -
JavaScript 里箭头函数
在 JavaScript 里,我们会经常遇到不需要给函数命名的情况,尤其是在需要将一个函数作为参数传给另外一个函数的时候。 这时,我们会创建匿名函数。 因为这些函数不会在其他地方复用,所以我们不需要给它们命名。当不需要函数体,只返回一个值的时候,箭头函数允许你省略return关键字和外面的大括号。 这样就可以将一个简单的函数简化成一个单行语句。const myFunc = () => "value";这段代码默认会返回字符串value。编写带参数的箭头函数和一般的函数一样,你...原创 2021-09-17 11:22:57 · 104 阅读 · 0 评论 -
for循环return,不再循环,为什么
循环中return区别是啥?题目错误,只有contact[0]就跳出循环正确原创 2021-09-16 22:07:28 · 162 阅读 · 0 评论 -
var 、let 、const
之前一直没注意var和let区别,一直都是混用的,看到了个解释。使用 var 关键字来声明变量,会出现重复声明导致变量被覆盖却不会报错的问题。var camper = 'James';var camper = 'David';console.log(camper);这里控制台将显示字符串David。在上面的代码中,camper变量的初始值为James,然后又被覆盖成了David。 在小型的应用中,你可能不会遇到这样的问题。但是当你的代码规模变得更加庞大的时候,就可能会在不经意...原创 2021-09-17 10:40:19 · 79 阅读 · 0 评论