LeetCode
文章平均质量分 62
LeetCode相关
_hsc
寻常公司的一枚普通程序猿。产品上线时,优先祭天人员。此人平时涉猎比较广,啥都要去碰一碰。另外此人比较懒,不爱写博客。
展开
-
任务调度器[621]
任务调度器[621]题目题解题目给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的最短时间。示例 :输入:tasks = ["A",原创 2020-07-20 08:33:51 · 203 阅读 · 0 评论 -
加油站[134]
加油站[134]题目题解题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入: gas = [1,2,3,4,5]cost原创 2020-07-16 10:07:07 · 88 阅读 · 0 评论 -
跳跃游戏[55]
跳跃游戏[55]题目题解题目给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后原创 2020-07-15 10:29:28 · 90 阅读 · 0 评论 -
非递增顺序的最小子序列[1403]
非递增顺序的最小子序列[1403]题目题解题目给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。注意,题目数据保证满足所有约束条件的解决方案是 唯一 的。同时,返回的答案应当按 非递增顺序 排列。原创 2020-07-14 10:04:12 · 169 阅读 · 0 评论 -
分割平衡字符串[1221]
分割平衡字符串[1221]题目题解题目在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。示例 2:输入:s = "RLLLLRRRLR"输出:3解释:s 可以分割为 "RL", "LLL原创 2020-07-14 09:14:48 · 170 阅读 · 0 评论 -
K 次取反后最大化的数组和[1005]
K 次取反后最大化的数组和[1005]题目题解题目给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的最大和。示例 1:输入:A = [4,2,3], K = 1输出:5解释:选择索引 (1,) ,然后 A 变为 [4,-2,3]。示例 2:输入:A = [3,-1,0,2], K = 3输出:6解释:选择索引 (1, 2,原创 2020-07-14 08:51:22 · 181 阅读 · 0 评论 -
删列造序[944]
删列造序[944]题目题解题目给定由 N 个小写字母字符串组成的数组 A,其中每个字符串长度相等。你需要选出一组要删掉的列 D,对 A 执行删除操作,使 A 中剩余的每一列都是 非降序 排列的,然后请你返回 D.length 的最小可能值。删除 操作的定义是:选出一组要删掉的列,删去 A 中对应列中的所有字符,形式上,第 n 列为 [A[0][n], A[1][n], …, A[A.length-1][n]])。(可以参见 删除操作范例)示例 1:输入:["cba", "daf", "ghi"]原创 2020-07-13 11:52:51 · 189 阅读 · 0 评论 -
玩筹码[1217]
玩筹码[1217]题目题解题目数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以):将第 i 个筹码向左或者右移动 2 个单位,代价为 0。将第 i 个筹码向左或者右移动 1 个单位,代价为 1。最开始的时候,同一位置上也可能放着两个或者更多的筹码。返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。示例 1:输入:chips = [1,2,3]输出:1解释:第二个筹码移动到位置三的代价是 1,第原创 2020-07-10 09:49:21 · 122 阅读 · 0 评论 -
两地调度[1029]
两地调度[1029]题目题解题目公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个人去 B 市,费用为 50。第四个人去 B 市,费用为 20。最低总费用为 10 +原创 2020-07-09 12:07:25 · 245 阅读 · 0 评论 -
最后一块石头的重量[1046]
最后一块石头的重量[1046]题目题解题目有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输出:1解释:原创 2020-07-08 10:19:00 · 113 阅读 · 0 评论 -
模拟行走机器人[874]
模拟行走机器人[874]题目题解题目机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令:-2:向左转 90 度-1:向右转 90 度1 <= x <= 9:向前移动 x 个单位长度在网格上有一些格子被视为障碍物。第 i 个障碍物位于网格点 (obstacles[i][0], obstacles[i][1])机器人无法走到障碍物上,它将会停留在障碍物的前一个网格方块上,但仍然可以继续该路线的其余部分。返回从原点到机原创 2020-07-07 09:45:01 · 475 阅读 · 0 评论 -
柠檬水找零[860]
柠檬水找零[860]题目题解题目在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取原创 2020-07-05 20:57:26 · 319 阅读 · 0 评论 -
买卖股票的最佳时机 II[122]
买卖股票的最佳时机 II[122]题目题解题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(原创 2020-07-04 21:23:15 · 91 阅读 · 0 评论 -
分发饼干[455]
分发饼干[455]解法一解法二解法一//假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干//的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满//足越多数量的孩子,并输出这个最大数值。//// 注意://// 你可以假设胃口值为正。//一个小朋友最多只能拥有一块饼干。原创 2020-07-03 09:54:34 · 185 阅读 · 0 评论 -
移掉K位数字[402]
[402]移掉K位数字LeetCode官方解题方式//给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 //// 注意: //// // num 的长度小于 10002 且 ≥ k。 // num 不会包含任何前导零。 // //// 示例 1 : //// //输入: num = "1432219", k = 3//输出: "1219"//解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。// ///原创 2020-07-02 11:10:04 · 148 阅读 · 1 评论 -
判断子序列[392]
判断子序列[392]//给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 //// 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 //// 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"ae//c"不是)。 //// 示例 1: //s = "abc", t = "ahbgd原创 2020-07-01 14:02:58 · 177 阅读 · 0 评论 -
Intellij安装Leetcode刷题插件
Intellij安装Leetcode刷题插件插件安装Leetcode配置快捷模板配置开始刷题插件安装在idea插件市场中搜索leetcode,点击install进行安装,安装之后重启idea。可能会存在搜索不到leetcode插件的情况,请重启Idea后试一下Leetcode配置快捷模板配置开始刷题...原创 2020-07-01 11:42:02 · 7402 阅读 · 9 评论