算法基础
文章平均质量分 57
不会算法的前端不是好程序员
just小千
这个作者很懒,什么都没留下…
展开
-
那些年的拦路虎们
这段时间被阿里面试了两次,以下是这两次笔试的题目,题目本身不难,奈何实力不足,做题的时候容易怂,所以做得不是很好,最近反思之后,将题目重新做了一遍,答案仅为个人想法,测试用例都过了,但还有一定(是很大很大很大)的进步空间,希望先记录下来,有空的时候再进行二次复盘。1.一个小时做出以下三道题难度:两颗星(题目真的不难,就是当时有点紧张)手写防抖(debounce),手写节流(throttle)function debounce(fn, cb) { let timer; return fun原创 2021-06-06 23:48:52 · 170 阅读 · 3 评论 -
牛客网前端技能大挑战详解
牛客网前端技能大挑战60道题全方位分析原创 2021-05-07 23:55:18 · 446 阅读 · 0 评论 -
Leetcode的一些数组
一些数组相关的leetcode题目原创 2021-04-29 23:38:17 · 77 阅读 · 0 评论 -
Leetcode-26-删除有序数组中的重复项
根据这题来复习数组删除重复元素的方法原创 2021-04-28 08:40:33 · 61 阅读 · 0 评论 -
Leetcode-938-二叉搜索树的范围和
从简单的题目来归纳深度优先和广度优先算法原创 2021-04-27 23:54:08 · 57 阅读 · 0 评论 -
一些简单leetcode题目
Leetcode-1822 数组元素积的符号已知函数 signFunc(x) 将会根据 x 的正负返回特定值:如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。返回 signFunc(product) 。解题思路可能比较奇葩:var arraySign = function(nums) { if(nums.indexOf(0) > -1){原创 2021-04-16 23:54:47 · 266 阅读 · 0 评论 -
leetcode-打家劫舍
打家劫舍分简单版和进阶版两个题目,分别对应leetcode-198以及leetcode-213,普通版题目:专业的小偷,每间房内都藏有一定的现金,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。进阶版的题目加了一个条件,房子首尾相连;思路我是先看的进阶版题目,首尾相连的屋子,所以这次从进阶版题目开始说起。拿到题目的时候,第一个反应是贪心(后来血泪史原创 2021-04-16 00:59:39 · 212 阅读 · 0 评论 -
leetcode-179-求最大数
求最大数题目:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。(leetcode-179)题目分析:一看到排序,第一个想到的快排(因为最近在快排上栽了跟头,所以看到题目啥也不管先写一个快排),这道题的难点其实不在于排序算法本身,而在于用怎样的规则将数组排列好。下面是详细的题解:function compareNum(a,b){ // 比较函数是关键 //比如33和222相比,最终目的是比较33222和22333,他们俩谁大决定谁位置排在前面,33222=原创 2021-04-12 23:44:38 · 138 阅读 · 0 评论 -
递归
递归概念:某个函数直接或者间接的调用自身求解过程:1.划分成许多相同性质的子问题的求解2.当小问题的求解过程很容易时,子问题的求解过程就构成了原问题的解总体思想:1.待求解问题的解:输入变量x的函数f(x)2.通过寻找函数g(),使得g()f(x-1)3.已知f(0)的值,就可以通过f(0)和g(),求出f(x)的值递归式:如何将原问题划分成子问题递归出口:递归终止条件,即最小子问题的求解,可以允许多个出口界函数:问题规模变化的函数,它保证递归的规模向出口条件靠拢递归解决问题的关键:原创 2021-04-03 20:59:37 · 118 阅读 · 0 评论 -
枚举
枚举概念:基于已有知识进行答案猜测的一种问题求解策略方式:从可能的集合中一一列举各元素枚举算法:对问题可能解集合的每一项,根据问题给定的检验条件判定哪些问题是成立的,使条件成立的即是问题的解白话文理解:根据条件,猜测一下所有的可能性,然后将每一个可能性进行一一验证,直到找到符合标准的那一个,最简单的就是暴力求解,每种情况都试一次,那肯定不会有遗漏的,但一般情况下有了条件约束,我们能够在所有可能性当中筛选出一些绝对不符合条件的结果,这样下来就能减少枚举的数量。枚举的关键在于怎么合理的翻译约束条件,使原创 2021-04-03 20:58:33 · 119 阅读 · 0 评论