
算法
甩锅工程师
一个前端工程师,职业技能:甩锅
主要使用vue,也会点服务器的东西
展开
-
细数数组中的那些骚操作--去重,扁平化
数组去重、扁平化原创 2022-11-22 14:15:51 · 153 阅读 · 0 评论 -
全排列算法-Leetcode 46
给定一个不含重复数字的数组 nums ,返回其所有可能的全排列。你可以 按任意顺序返回答案。原创 2022-09-18 17:05:13 · 141 阅读 · 0 评论 -
js 如何判断数组中是否有重复数据
第一种方法,利用异或,^。 let arr = [1, 2, 3, 4, 2, 3], x1 = 0 for (let i = 0; i < arr.length; i++) { x1 = x1 ^ arr[i]; } console.log(x1); //输出 5 只要结果大于0就说明数组中又重复数据。 第二种方法,利用ES6语法. 首先回顾一下,数组如何去重 Array.from(new Set(arr)) 利用这种方法就可以将数组去重,然后 Array.from(new S原创 2022-05-07 14:26:02 · 7938 阅读 · 3 评论 -
数据结构与算法之时间复杂度、空间复杂度
算法复杂度 - 时间复杂度、空间复杂度 时间复杂度 关注点在循环次数最多的代码块 最大值原则 - 存在多个循环,总复杂度等于最大的代码块复杂度 乘法原则 - 嵌套代码复杂度等于嵌套内外代码块复杂度的乘积 注意:算法的时间复杂度是一个函数,它定性描述该算法的运行时间关系,不表示确切时间。 function total(n) { let sum = 0; // t for (let i = 0; i < n; i++) { // nt sum += i; // nt原创 2021-10-11 10:35:12 · 113 阅读 · 0 评论 -
数据结构与算法之树
// 前序中序后序遍历 const PreOrder = function(node) { if(node !== null) { console.log(node.val); PreOrder(node.left); PreOrder(node.right); } } const InOrder = function(node) { if(node !== null) { InOrder(node.left); console.log(node.va.原创 2021-10-10 16:52:50 · 119 阅读 · 0 评论 -
数据结构与算法之 栈与队列
栈与队列 栈 - 先入后出 队列 - 先入先出 实现一个 class Stack { constructor() { this.items = []; } // 添加新元素到栈 push(element) { this.items.push(element); } // 移出栈顶元素 pop() { return this.items.pop(); } // 获取栈顶元素 peek() { return this.items[原创 2021-10-10 16:41:17 · 99 阅读 · 0 评论 -
数据结构与算法之链表
数组 & 链表 查找:数组连续,效率高。可以迅速定位到数组中某一个节点位置。而链表则需要通过前一个元素指向下一个元素地址,需要前后依赖,效率较低 插入:数组中元素插入会引起被插入位后所有元素索引的改变,而链表只需要改变某一个节点的next // 面试题 实现链表 // head => node1 => node2 => ... => null // 链表类结构 class LinkList { constructor() { this.length = 0;原创 2021-10-10 16:31:22 · 106 阅读 · 0 评论