Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 面试题 05.02. 二进制数转字符串
题目简介:二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。 示例1: 12输入:0.625输出:"0.101" 示例2: 123输入:0.1输出:"ERROR"提示:0.1无法被二进制准确表示 提示: 32位包括输出中的 "0." 这两位。 题目保证输入用例的小数位数最多只有 6 位 思路:将十进制转换为二进制的操作为: 先将num = num * 2,然后取整数部分temp 再将num = num ...
Leetcode 1247. 交换字符使得字符串相同
题目简介:有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。 交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换 s1[i] 和 s2[j],但不能交换 s1[i] 和 s1[j]。 最后,请你返回使 s1 和 s2 相同的最小交换次数,如果没有方法能够使得这两个字符串相同,则返回 -1 。 示例 1: 1234输入:s1 = "xx",...
Leetcode 2357. 使数组中所有元素都等于零
题目简介:给你一个非负整数数组 nums 。在一步操作中,你必须: 选出一个正整数 x ,x 需要小于或等于 nums 中 最小 的 非零 元素。 nums 中的每个正整数都减去 x。 返回使 nums 中所有元素都等于 0 需要的 最少 操作数。 示例 1: 123456输入:nums = [1,5,0,3,5]输出:3解释:第一步操作:选出 x = 1 ,之后 nums = [0,4,0,2,4] 。第二步操作:选出 x = 2 ,之后 nums = [0,2,0,0,2] 。第三步操作:选出 x = 2 ,之后 nums = [0,0,0,0,0] 。 提示: 1 <=...
Leetcode 1140. 石子游戏 II
题目简介:爱丽丝和鲍勃继续他们的石子游戏。许多堆石子 排成一行,每堆都有正整数颗石子 piles[i]。游戏以谁手中的石子最多来决出胜负。 爱丽丝和鲍勃轮流进行,爱丽丝先开始。最初,M = 1。 在每个玩家的回合中,该玩家可以拿走剩下的 前 X 堆的所有石子,其中 1 <= X <= 2M。然后,令 M = max(M, X)。 游戏一直持续到所有石子都被拿走。 假设爱丽丝和鲍勃都发挥出最佳水平,返回爱丽丝可以得到的最大数量的石头。 示例 1: 123输入:piles = [2,7,9,4,4]输出:10解释:如果一开始Alice取了一堆,Bob取了两堆,然后Alice再取两...
Leetcode 1792. 最大平均通过率
题目简介:一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组classes ,其中 classes[i] = [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali 个学生,其中只有 passi 个学生可以通过考试。 给你一个整数 extraStudents ,表示额外有 extraStudents 个聪明的学生,他们 一定 能通过任何班级的期末考。你需要给这 extraStudents 个学生每人都安排一个班级,使得 所有 班级的 平均 通过率 最大 。 一个班级的 通过率 等于这个班级通过考试的学生人数除以这个班...
Leetcode 1139. 最大的以 1 为边界的正方形
题目简介:给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 示例 1: 12输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9 示例 2: 12输入:grid = [[1,1,0,0]]输出:1 提示: 1 <= grid.length <= 100 1 <= grid[0].length <= 100 grid[i][j] 为 0 或 1 思路:我们用left[x][y]来代表以(x, y)为起点**往左连续1的个数,up...
Leetcode 1124. 表现良好的最长时间段
题目简介:给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。 请你返回「表现良好时间段」的最大长度。 示例 1: 123输入:hours = [9,9,6,0,6,6,9]输出:3解释:最长的表现良好时间段是 [9,9,6]。 示例 2: 12输入:hours = [6,6,6]输出:0 提示: 1 <= hours.length <= 10^4 0 <= hours[i] ...
Leetcode 1234. 替换子串得到平衡字符串
题目简介:有一个只含有 'Q', 'W', 'E', 'R' 四种字符,且长度为 n 的字符串。 假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就是一个「平衡字符串」。 给你一个这样的字符串 s,请通过「替换一个子串」的方式,使原字符串 s 变成一个「平衡字符串」。 你可以用和「待替换子串」长度相同的 任何 其他字符串来完成替换。 请返回待替换子串的最小可能长度。 如果原字符串自身就是一个平衡字符串,则返回 0。 示例 1: 123输入:s = "QWER"输出:0解释:s 已经是平衡的了。 ...
Leetcode 1971. 寻找图中是否存在路径
题目简介:有一个具有 n 个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点对由 最多一条 边连接,并且没有顶点存在与自身相连的边。 请你确定是否存在从顶点 source 开始,到顶点 destination 结束的 有效路径 。 给你数组 edges 和整数 n、source 和 destination,如果从 source 到 destination 存在 有效路径 ,则返回 true,否则返回 fal...
Leetcode 1827. 最少操作使数组递增
题目简介:给你一个整数数组 nums (下标从 0 开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。 比方说,如果 nums = [1,2,3] ,你可以选择增加 nums[1] 得到 nums = [1,3,3] 。 请你返回使 nums 严格递增 的 最少 操作次数。 我们称数组 nums 是 严格递增的 ,当它满足对于所有的 0 <= i < nums.length - 1 都有 nums[i] < nums[i+1] 。一个长度为 1 的数组是严格递增的一种特殊情况。 示例 1: 123456输入:nums = [1,1,1]输出:3解释:...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili