算法
_陈平安
前端开发
展开
-
283. 移动零
LeetCode - 283. 移动零题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]限制条件:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路1. 双指针二次遍历指针 i 访问一遍数组,遇到 非0 元素时,将值赋给指针 j ,指针 j 记录 非0 元素后向后移动;将指针 j 视为起点进行后续遍历,将后面位置的值更改为 0/** *原创 2020-11-20 00:06:38 · 134 阅读 · 0 评论 -
LeetCode - 134. 加油站
LeetCode - 134. 加油站题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例1:输入: gas = [1,2,3,4,5原创 2020-11-18 23:27:04 · 151 阅读 · 0 评论 -
LeetCode - 1030. 距离顺序排列矩阵单元格
LeetCode - 1030. 距离顺序排列矩阵单元格题目给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的原创 2020-11-17 23:07:17 · 187 阅读 · 0 评论 -
LeetCode - 406. 根据身高重建队列
LeetCode - 406. 根据身高重建队列题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例:输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]解题思路1. 从高到低排序将每个人按照身高从原创 2020-11-16 21:21:44 · 230 阅读 · 0 评论 -
LeetCode - 104. 二叉树的最大深度
LeetCode - 104. 二叉树的最大深度题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。注意:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题思路1. 递归如果我们知道了左子树和右子树的最大深度 l 和 r,那么该二叉树的最大深度即为 max(l, r) + 1/** * D原创 2020-11-15 23:52:52 · 92 阅读 · 0 评论 -
1122. 数组的相对排序
LeetCode - 1122. 数组的相对排序题目给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例1:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]原创 2020-11-14 22:11:31 · 250 阅读 · 0 评论