自定义博客皮肤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)
  • 收藏
  • 关注

原创 js + leetcode刷题:No.200 岛屿数量

思路:BFS && DFS备注:本文解法时间空间上在该题都没有优势,只是自己完全自己写出来的一次“BFS && DFS”;第一版还依然带着color的三种颜色,哈哈哈题目:岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,...

2020-04-20 22:13:20 374

原创 js + leetcode刷题:No.225、232、面试题03.04、面试题09 -- 队列与栈相互实现

基本结构:栈&队列目录:一、队列实现栈二、栈实现队列一、队列实现栈/** * Initialize your data structure here. */var MyStack = function() { this.queue = [];};/** * Push element x onto stack. * @param {number} x *...

2020-04-19 19:55:57 131

原创 js + leetcode刷题:No.155 最小栈 & 面试题03.02 & 面试题30. 包含min函数的栈

思路:辅助栈,存取一个当前最小值的栈最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.p...

2020-04-19 17:24:27 113

原创 js + leetcode刷题:No.135 分发糖果

思路:(1)正反两次循环,将最高位比较值确定(2)一次遍历,根据递增递减与连续递增减的个数之间的关系,进行求和计算;(第二种更省时省空间)题目:分发糖果老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样...

2020-04-19 16:41:14 326

原创 js + leetcode刷题:No.11 盛最多水的容器

思路: 1.暴力;2.根据“如果新边足够高的话,效果有可能大于宽度收缩带来的负效果”,所以向内收缩时,移动矮的一侧题目:盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不...

2020-04-18 10:18:57 125

原创 js + leetcode刷题:No.56 合并区间

思路:先排序,然后判断是否包容题目:合并区间给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,...

2020-04-16 16:15:15 335

原创 js + leetcode刷题:No.31 下一个排列

思路:从右向左查找,查找第一个左值小于右边的值;改位置处需要调整;然后处理;找不到,升序题目:下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23...

2020-04-09 17:18:03 136

原创 js + leetcode刷题:No.870 优势洗牌

标签:贪心算法;难度:中等思路:先排序+贪心给出满足条件最小,找不到直接给最小题目:优势洗牌给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。返回 A 的任意排列,使其相对于 B 的优势最大化。示例 1:输入:A = [2,7,11,15], B = [1,10,4,11]输出:[2,11,7,15]...

2020-04-09 11:50:37 200

原创 js + leetcode刷题:No.22 括号生成

思路:按照可选填入括号,需要保证左括号小于等于右括号,才能有效此题的时间空间复杂度,着实不大会算了,晚些希望自己能够早点补上题目:括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]*/解法:/...

2020-04-09 10:30:37 179

原创 js + leetcode刷题:No.763 划分字母区间

标签:贪心算法;难度:中等思路:左起寻找第一个lastIndexOf,在该区间内找所包含的lastIndexOf,依情况延长题目:划分字母区间字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = “ababcbacadefegdehijhklij”输出: [9,7,...

2020-04-09 10:26:49 135

原创 js + leetcode刷题:No.134 加油站

标签:贪心算法;难度:中等思路:改题中,拥有必须大于等于失去;当满足这个条件的时候,应该有一个满足条件的值;从开始循环,当遇到不能走向下一步的时候,说明初始走过来的值在后面,假设为下一个,向下循环在怎么找这个点的时候,费劲儿老半天;还是官方解答思路比较清晰题目:加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个...

2020-04-08 22:09:44 160

原创 js + leetcode刷题:面试题 01.07. 旋转矩阵

思路:可转圈替换,一层层,但奈何功力不够,写不出来;还可以发现规律,先上下对换,再主对角线对换题目:面试题 01.07. 旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使...

2020-04-08 21:38:55 215

原创 js + leetcode刷题:面试题13. 机器人的运动范围

思路:表格,递推类,可以考虑BFS和DFS。根据下一个是否能走到依靠上一个左右位置,找出对应关系arr[i][j]=arr[i−1][j] || arr[i][j−1]此题思路参考官方解答题目:面试题13. 机器人的运动范围地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不...

2020-04-08 21:34:36 251

原创 js + leetcode刷题:No.55,54 跳跃游戏两题一文

标签:贪心算法;难度:中等、困难;思路:55:贪多步之间能够到达的最远位置,当改位置大于等于最后一个下标时,即可跳跃;45:倒序循环数组;初始,当前位置锁定最后一个,贪最远满足条件到达当前位置的下标(这个下标要从最远位置开始循环,保证最远),计数1;当当前位置为0时,循环结束;count即为最终值55 跳跃游戏:题目:跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数...

2020-04-06 17:53:59 174

原创 js + leetcode刷题:No.44 通配符匹配

标签:动态规划、回溯算法、贪心算法;难度:困难;回溯算法暂未了解,目前先不做说明;改题解法采用动态规划。思路:p[i] 为‘?’,或与当前对比s字母相等,dp[i][j] = dp[i-1][j-1]为‘*’,时,dp[i][j] = dp[i][j-1] || dp[i-1][j];另外,dp[0][0] = true,剩下的默认为false;且p[i-1]为‘*’,则之后的均可保持匹...

2020-04-06 15:14:33 191

原创 js + leetcode刷题:No.72 编辑距离

标签:;难度:困难;思路:参考官方思路:https://leetcode-cn.com/problems/edit-distance/solution/bian-ji-ju-chi-by-leetcode-solution/题目:编辑距离给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插...

2020-04-06 15:06:34 168

原创 js + leetcode刷题:No.5376 非递增顺序的最小子序列

标签:贪心算法;难度:简单思路:根据题目,先排序,方便拿出满足条件的最大的子序列;后面的和大于前面的和题目:非递增顺序的最小子序列给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。与子数组不同的地方在于,「数组的...

2020-04-06 00:18:18 157

原创 js + leetcode刷题:No.1221 分割平衡字符串

标签:贪心算法、字符串;难度:简单思路:该题贪的是最大数量,那么就是一旦满足组成平衡字符串,那么就计数题目:分割平衡字符串在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = “RLRRLLRLRL”输出:4解释:s 可以分割为 “RL”...

2020-04-05 23:45:32 141

原创 js + leetcode刷题:No.1217 玩筹码

标签:贪心算法、数组;难度:简单思路:chips中的元素即位置;且移动两位不消耗,移动一位消耗;间隔两位的是奇数与奇数,偶数与偶数;所以最终是比较奇偶的个数最小值总觉得在做“脑筋急转弯”,差点转不过来;题目:玩筹码数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以):将第 i 个筹码向左或者右移动 ...

2020-04-05 22:23:27 188

原创 js + leetcode刷题:No.1046 最后一块石头的重量

标签:贪心算法;难度:简单思路:先排序,找最大两个,比较,有差则将差按照二分查找方式放进数组(这样理论上快一点)。所以在一定程度上,觉得这个题目考的是数据插入(二分插入)不过,哇哈哈哈,一个splice没有控制好位置,搞了我两个小时啊。插入应该从小于target的点加1个位置插进去;找个时间把数组的十大排序理一理题目:最后一块石头的重量有一堆石头,每块石头的重量都是正整数。每一回合,...

2020-04-05 21:58:50 175

原创 js + leetcode刷题:No.1029 两地调度

标签:贪心算法;难度:简单思路:考虑是否能取到两者最合适的第一个,主要考虑是差值最大的肯定要优先取最小的。因此将按照差值排序,前N个最小的去A,后N个去B题目:两地调度公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10...

2020-04-05 18:34:16 149

原创 js + leetcode刷题:No.1005 K 次取反后最大化的数组和

标签:贪心算法;难度:简单贪的是每次逆转为最小值,得到最大值的总和。思路:先排序,然后先逆转最大的负数,没有负数则逆转较小的正数,直至次数用尽题目:K 次取反后最大化的数组和给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的...

2020-04-05 17:41:50 187

原创 js + leetcode刷题:No.944 删列造序

标签:贪心算法;难度:简单;贪的是每列中任何两个相连元素降序相连,则改列计数题目:删列造序给定由 N 个小写字母字符串组成的数组 A,其中每个字符串长度相等。删除 操作的定义是:选出一组要删掉的列,删去 A 中对应列中的所有字符,形式上,第 n 列为 [A[0][n], A[1][n], …, A[A.length-1][n]])。比如,有 A = [“abcdef”, “uvwxyz...

2020-04-05 17:01:36 95

原创 js + leetcode刷题:No.874 模拟行走机器人

该题标签:贪心算法;难度:简单;根据题意,贪的是每个方向最长能走的路。其实也是根据题意,写出的代码思路:先set存储障碍点,以防重复。然后每个指令进行一次转向或行走判断是否到达障碍点的判断。关于方向,根据顺时针方向定义。其中,最大欧式距离的平方 不等于 最终位置的欧式距离,而是过程中所有的欧式距离的最大值补充:欧式距离即直线距离,曼哈顿距离即为到达方式的距离(多个);切比雪夫距离(Cheby...

2020-04-05 16:37:04 200

原创 js + leetcode刷题:No.460 LFU缓存

思路:利用双hash,一个存储当前缓存内容,一个存储被访问次数对应的key概念拓展:常见的缓存算法LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。FIFO (Fist ...

2020-04-05 13:50:17 121

原创 js + leetcode刷题:No.860 柠檬水找零

思路:贪心算法 贪的是每次手里留下的都是更小额零钱便于找零,也就是说尽可能把大的钞票给出去。因为找零,不需要计算挣多少钱,所以只需要明白两个变量5,10是否够找题目:柠檬水找零在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找...

2020-04-04 22:13:49 138

原创 js + leetcode刷题:No.455 分发饼干

贪心算法 简单类型思路:本题叙述,很明显知道贪的对象是sj >= gi的个数,排序之后比较计算题目:分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩...

2020-04-04 21:27:18 215

原创 js + leetcode刷题:No.42 接雨水

改题采取最基本的思路,依照题目直接思考。目前不具备“栈”等思考,不便参考思路:根据每个点,找出左右的高点(也需要包含自身去比较),根据高点最小值 - 当前点长度得出可积水单位,叠加题目:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个...

2020-04-04 21:24:01 161 1

空空如也

空空如也

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

TA关注的人

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