
leetcode
文章平均质量分 92
柔水终成雕刀╮( ̄▽ ̄"")╭
这个作者很懒,什么都没留下…
展开
-
【leetcode】1319连通网络的操作次数 | 寻找图中的连通分量 | 深度优先搜索 | 并查集
算法考完到现在颓废了10天,小王又回来了。刷leeetcode明显觉得力不从心了,还好以前的功力也不是很深厚,慢慢补一补,很快能补回来的。 题目 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。 网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。 给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机.原创 2021-01-23 16:06:36 · 160 阅读 · 1 评论 -
【leetcode】48旋转图像 | 原地旋转
题目 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], .原创 2020-12-19 14:04:04 · 137 阅读 · 1 评论 -
【leetcode】389找不同 | 求和 | 位运算
题目 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 示例 2: 输入:s = “”, t = “y” 输出:“y” 示例 3: 输入:s = “a”, t = “aa” 输出:“a” 示例 4: 输入:s = “ae”, t = “aea” 输出:“a” 提示: 0 <.原创 2020-12-18 14:27:45 · 116 阅读 · 0 评论 -
【leetcode】741买卖股票的最佳时机含手续费 | 动态规划 | 贪心
题目 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。 示例 1: 输入: prices = [1, 3, 2, 8, 4, 9], fee = 2 输出: 8 解释: 能够达到的最大利润: 在此处买.原创 2020-12-17 16:59:18 · 221 阅读 · 0 评论 -
【leetcode】290单词规律 | hash | 双射 | SplitString
题目 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true 示例 2: 输入:pattern = “abba”, str = “dog cat cat fish” 输出: false 示例 3: 输入: patter.原创 2020-12-16 13:58:27 · 154 阅读 · 0 评论 -
【leetcode】738单调递增的数字 | 贪心 |累加
题目 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。 (当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。) 示例 1: 输入: N = 10 输出: 9 示例 2: 输入: N = 1234 输出: 1234 示例 3: 输入: N = 332 输出: 299 说明: N 是在 [0, 10^9] 范围内的一个整数。 题解 刚开始的思路是:从后往前看,如果这一位数比前一位数小,那就把.原创 2020-12-15 15:31:29 · 263 阅读 · 0 评论 -
【leetcode】49字母异位词分组 | 哈希表 | 质数相乘
题目 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ] 说明: 所有输入均为小写字母 不考虑答案输出的顺序 题解 —— 在美版leetcode上看到大神的思路,用质数表示26个字母,把字符串的各个字母相乘,这样可保证字母异位词的乘积必定是相等的。其余步骤就.原创 2020-12-14 15:38:39 · 167 阅读 · 0 评论 -
【leetcode】376摆动序列 | 贪心 | 动态规划
题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除.原创 2020-12-13 18:41:46 · 122 阅读 · 0 评论 -
【leetcode】649Dota游戏参议院 | 贪心
题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项: 禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。 宣布胜利:如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。 给定一个字符串代表每个参议员的阵营。字母 .原创 2020-12-11 18:47:08 · 200 阅读 · 0 评论 -
【leetcode】860柠檬水找零(模拟+贪心)
题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 注意,一开始你手头没有任何零钱。 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。 这杯柠檬水有点贵哈 示例 1: 输入:[5,5,5,10,20] 输出:true 解释: 前 3 位顾客那里,我们按顺序收取 3 张.原创 2020-12-10 14:52:31 · 122 阅读 · 0 评论 -
【leetcode】62不同路径(动态规划+组合)
题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 输入:m = 3, n = 7 输出:28 示例2: 输入:m = 3, n = 2 输出:3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。 向右 -> 向右 -> 向下 向右 -> 向下 -> 向右 向下 -> 向右.原创 2020-12-10 00:01:15 · 115 阅读 · 0 评论 -
【leetcode】842将数组拆分成斐波那契数列(三剪枝)
题目 给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。 形式上,斐波那契式序列是一个非负整数列表 F,且满足: 0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型); F.length >= 3; 对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1] = F[i+2] 成立。 另外,请注意,将字符串拆分成小块时,每个块的.原创 2020-12-08 20:25:49 · 156 阅读 · 0 评论 -
【leetcode】861矩阵翻转后得分情况
题目描述 有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。 示例: 输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]] 输出:39 解释: 转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]] 0b1111 + 0b1001 + 0b1111 =原创 2020-12-07 10:26:55 · 114 阅读 · 0 评论