
LeetCode
文章平均质量分 90
1、 LeetCode 个人的一些解题
2、尽量将一些经典的题的解法思路提取记录下
Shang.Liang
To Be A Better Programmer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二维网格迁移 | 在受污染的二叉树中查找元素 | 可被三整除的最大和 | 推箱子 | LeetCode 周赛第 163 场 JAVA 实现「163」
1260. 二维网格迁移 给你一个 n 行 m 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。 每次「迁移」操作将会引发下述活动: 位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。 位于 grid[i][m - 1] 的元素将会移动到 grid[i + 1][0]。 位于 grid[n - 1][m - 1] 的元素将会移动到 grid[0]...原创 2019-11-20 11:08:56 · 266 阅读 · 0 评论 -
等概率随机取数算法 - 洗牌算法 | 链表随机节点 | 随机数索引 - Java 实现
等概率随机取数算法 1. 洗牌算法 2. 链表随机节点 该题目来自力扣 382 题:链表随机节点 (https://leetcode-cn.com/problems/linked-list-random-node/) 给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。 进阶: 如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现? 示例: // 初始化一个单链表 [1,...原创 2020-05-29 19:13:42 · 1204 阅读 · 0 评论 -
[Java 解题系列] LeetCode: 746. 使用最小花费爬楼梯
题目 来源:力扣(LeetCode) 数组的每个索引做为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](索引从 0 开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 示例 1: 输入: cost = [10, 15, 20] ...原创 2020-04-20 21:25:48 · 253 阅读 · 0 评论 -
[Java 解题系列] LeetCode: 面试题 08.01. 三步问题
题目 来源:力扣(LeetCode) 三步问题。有个小孩正在上楼梯,楼梯有 n 阶台阶,小孩一次可以上 1 阶、2 阶或 3 阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模 1000000007。 示例 1: 输入:n = 3 输出:4 说明: 有四种走法 示例 2: 输入:n = 5 输出:13 提示: n 范围在 [1, 1000000] 之间 分析...原创 2020-04-20 18:07:32 · 337 阅读 · 0 评论 -
访问所有点的最小时间 | 统计参与通信的服务器 | 搜索推荐系统 | 停在原地的方案数 | LeetCode 周赛第 164 场 JAVA 实现「164」
1266. 访问所有点的最小时间 平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。 你可以按照下面的规则在平面上移动: 每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。 必须按照数组中出现的顺序来访问这些点。 示例 1 输入:points =...原创 2019-11-27 10:54:22 · 252 阅读 · 0 评论 -
1047.删除字符串中的所有相邻重复项(Remove All Adjacent Duplicates In String) | LeetCode 第 1047 题
删除字符串中的所有相邻重复项 点击进入 LeetCode 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例 输入:"abbaca" 输出:"ca" 解释: 例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时...原创 2019-11-19 08:48:13 · 271 阅读 · 0 评论 -
奇数值单元格的数目 | 重构 2 行二进制矩阵 | 统计封闭岛屿的数目 | 得分最高的单词集合 | LeetCode 周赛第 162 场 JAVA 实现「162」
1252. 奇数值单元格的数目 给你一个 n 行 m 列的矩阵,最开始的时候,每个单元格中的值都是 0。 另有一个索引数组 indices,indices[i] = [ri, ci] 中的 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。 你需要将每对 [ri, ci] 指定的行和列上的所有单元格的值加 1。 请你在执行完所有 indices 指定的增量操作后,返回矩阵中 「奇数值单元格...原创 2019-11-19 08:44:48 · 241 阅读 · 0 评论 -
交换字符使得字符串相同 | 统计「优美子数组」 | 移除无效的括号 | 检查「好数组」 | LeetCode 周赛第 161 场 JAVA 实现「161」
1247. 交换字符使得字符串相同 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。 交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换 s1[i] 和 s2[j],但不能交换 s1[i] 和 s1[j]...原创 2019-11-19 08:37:47 · 332 阅读 · 0 评论 -
1021.删除最外层的括号(Remove Outermost Parentheses) | LeetCode 第 1021 题
删除最外层的括号 点击进入 LeetCode 有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。 如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都...原创 2019-11-19 08:35:07 · 251 阅读 · 0 评论 -
682.棒球比赛(Baseball Game) | LeetCode 第 682 题
棒球比赛 点击进入 LeetCode 你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 整数(一轮的得分):直接表示您在本轮中获得的积分数。 "+"(一轮的得分):表示本轮获得的得分是前两轮 有效 回合得分的总和。 "D"(一轮的得分):表示本轮获得的得分是前一轮 有效 回合得分的两倍。 "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个 有效 回合的...原创 2019-11-19 08:33:20 · 208 阅读 · 0 评论