算法训练
文章平均质量分 68
每日练习一道算法题
Zack_tzh
这个作者很懒,什么都没留下…
展开
-
【每日一题】 1438. 绝对差不超过限制的最长连续子数组
【每日一题】 1438. 绝对差不超过限制的最长连续子数组避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。提示:1 <= nums.length <= 10^51 <= nums[i] <= 10^90 <= limit &原创 2021-03-02 09:44:43 · 193 阅读 · 0 评论 -
【每日一题】 697. 数组的度
【每日一题】 697. 数组的度避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。提示:nums.length 在1到 50,000 区间范围内。nums[i] 是一个在 0 到 49,999 范围内的整数。示例 1:输入:[1, 2, 2, 3, 1]输出:2解原创 2021-02-27 18:12:29 · 281 阅读 · 0 评论 -
【每日一题】 1004. 最大连续1的个数 III
【每日一题】 1004. 最大连续1的个数 III避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。提示:1 <= A.length <= 300001 <= K <= A.length示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1原创 2021-02-26 10:45:10 · 219 阅读 · 0 评论 -
【每日一题】 995. K 连续位的最小翻转次数
【每日一题】 995. K 连续位的最小翻转次数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的最小次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。提示:1 <= A.length <= 300001 <= K <= A.length示例原创 2021-02-25 10:54:29 · 200 阅读 · 0 评论 -
【每日一题】 992. K 个不同整数的子数组
【每日一题】 992. K 个不同整数的子数组避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定独立的子数组为好子数组。(例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3。)返回 A 中好子数组的数目。提示:1 <= A.length <= 200001 <= A[i] <= A.length1 <=原创 2021-02-24 09:28:25 · 10740 阅读 · 0 评论 -
【每日一题】 978. 最长湍流子数组
【每日一题】 978. 最长湍流子数组避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等当 A 的子数组 A[i], A[i+1], …, A[j] 满足下列条件时,我们称其为湍流子数组:若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若 i <= k < j,当 k 为偶数时,A[k] > A[k+1] ,且当 k 为奇数时, A[k] <原创 2021-02-23 09:37:25 · 10725 阅读 · 0 评论 -
【每日一题】 665. 非递减数列
【每日一题】 665. 非递减数列避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。提示:1 <= n <= 10 ^ 4- 10 ^ 5 <= nums[i] <= 10 ^ 5原创 2021-02-22 09:34:56 · 10754 阅读 · 0 评论 -
【每日一题】 1423. 可获得的最大点数
【每日一题】 1423. 可获得的最大点数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) /原创 2021-02-21 17:01:28 · 10914 阅读 · 0 评论 -
【每日一题】 1208. 尽可能使字符串相等
【每日一题】 1208. 尽可能使字符串相等避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串转化为它在 t 中对原创 2021-02-20 09:54:04 · 10930 阅读 · 0 评论 -
【每日一题】 480. 滑动窗口中位数
【每日一题】 480. 滑动窗口中位数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:[2,3,4],中位数是 3[2,3],中位数是 (2 + 3) / 2 = 2.5给你一个数组 nums,有一个大小为 k 的窗口从最左端滑动到最右端。窗口中有 k 个数,每次窗口向右移动 1 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并输出原创 2021-02-19 10:06:11 · 10934 阅读 · 0 评论 -
【每日一题】 643. 子数组最大平均数 I
【每日一题】 643. 子数组最大平均数 I避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。提示:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。示例 1:输入:[1,12,-5,-6,50,3], k = 4输出:12.75解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75二、题原创 2021-02-18 10:46:46 · 10907 阅读 · 0 评论 -
【每日一题】 424. 替换后的最长重复字符
【每日一题】 424. 替换后的最长重复字符避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。提示:字符串长度 和 k 不会超过 104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k =原创 2021-02-09 11:03:45 · 10837 阅读 · 0 评论 -
【每日一题】 888. 公平的糖果棒交换
【每日一题】 888. 公平的糖果棒交换避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒原创 2021-02-08 09:55:21 · 11316 阅读 · 0 评论 -
【每日一题】 2. 两数相加
【每日一题】 7. 整数反转避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 中等给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。提示:每个链表中的节点数在范围 [1, 100] 内0 <= Node.val <= 9题目数据保证列表表示的数字不含前导零示例 1:原创 2021-02-07 10:07:51 · 12014 阅读 · 0 评论 -
【每日一题】 7. 整数反转
【每日一题】 7. 整数反转避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。提示:-231 <= x <= 231 - 1示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-32原创 2021-02-06 09:44:23 · 12650 阅读 · 0 评论 -
【每日一题】 724. 寻找数组的中心索引
【每日一题】 724. 寻找数组的中心索引避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 简单给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。提示:nums 的长度范围为 [0, 10000]。任何一个 nums[i] 将会是一原创 2021-02-05 10:13:35 · 12317 阅读 · 0 评论 -
【每日一题】 1579. 保证图可完全遍历
【每日一题】 1579. 保证图可完全遍历避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述难度: 困难Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边:类型 1:只能由 Alice 遍历。类型 2:只能由 Bob 遍历。类型 3:Alice 和 Bob 都可以遍历。给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 A原创 2021-02-04 09:35:53 · 12567 阅读 · 0 评论 -
【每日一题】 1690. 石子游戏 VII
【每日一题】 1690. 石子游戏 VII避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相等的得分。当没有石头可移除时,得分较高者获胜。鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力 减小得分的差值 。爱丽丝的目标是最大限度地 扩大得分的差值 。给你一个整数数组 stones ,原创 2021-02-03 09:37:39 · 235 阅读 · 0 评论 -
【每日一题】 1689. 十 - 二进制数的最少数目
【每日一题】 1689. 十-二进制数的最少数目避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。提示:1 <= n.length <= 105n 仅由数字组成n 不含任何前导零并总是表示正整原创 2021-02-02 09:42:36 · 12317 阅读 · 0 评论 -
【每日一题】 1688. 比赛中的配对次数
【每日一题】 1688. 比赛中的配对次数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次原创 2021-02-01 09:47:35 · 12498 阅读 · 0 评论 -
【每日一题】 1128. 等价多米诺骨牌对的数量
【每日一题】 1128. 等价多米诺骨牌对的数量避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,或是 a==d 且 b==c。在 0 <= i < j < domin原创 2021-01-28 09:59:05 · 12438 阅读 · 0 评论 -
【每日一题】 1518. 换酒问题
【每日一题】 1518. 换酒问题避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。提示:1 <= grid.length == grid[0].length <= 30grid[i][j] 是 '/'、'\'、或 ' '。示例 1:输入:numBottles = 9,原创 2021-01-27 11:02:51 · 15731 阅读 · 0 评论 -
【每日一题】 959. 由斜杠划分区域
【每日一题】 959. 由斜杠划分区域避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。提示:1 <= grid.length == grid[0].length <= 30grid[i][j] 是 '/'、'\'、或 ' '。示例 1:原创 2021-01-26 11:00:30 · 15959 阅读 · 0 评论 -
【每日一题】 1319. 连通网络的操作次数
【每日一题】 1319. 连通网络的操作次数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直原创 2021-01-25 10:25:06 · 16473 阅读 · 0 评论 -
【每日一题】 1319. 连通网络的操作次数
【每日一题】 1319. 连通网络的操作次数避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直原创 2021-01-24 17:27:26 · 16907 阅读 · 1 评论 -
【每日一题】 989. 数组形式的整数加法
【每日一题】 989. 数组形式的整数加法避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。提示:1 <= A.length <= 100000 <= A[i] <= 90 <= K <= 10000如果 A.length >原创 2021-01-23 20:05:05 · 17623 阅读 · 0 评论 -
【每日一题】 1705. 吃苹果的最大数目
【每日一题】 1705. 吃苹果的最大数目避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i] == 0 表示。你打算每天 最多 吃一个苹果来保证营养均衡。注意,你可以在这 n原创 2021-01-22 11:08:17 · 17472 阅读 · 0 评论 -
【每日一题】 1584. 连接所有点的最小费用
【每日一题】 1584. 连接所有点的最小费用避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。提示:原创 2021-01-21 09:40:39 · 18432 阅读 · 0 评论 -
【每日一题】 628. 三个数的最大乘积
【每日一题】 628. 三个数的最大乘积避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。提示:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。示例 1:输入: [1,2,6]输出: 12示例 2:输入: [1,2,-3,4]输出: 8二、题解1. 解法解题思路:这道题是为了原创 2021-01-20 09:49:28 · 18585 阅读 · 1 评论 -
【每日一题】 1396. 设计地铁系统
【每日一题】 1396. 设计地铁系统避免每日太过咸鱼,一天搞定一道LeetCode算法题一、题目描述请你实现一个类 UndergroundSystem ,它支持以下 3 种方法:checkIn(int id, string stationName, int t)编号为 id 的乘客在 t 时刻进入地铁站 stationName 。一个乘客在同一时间只能在一个地铁站进入或者离开。checkOut(int id, string stationName, int t)编号为 i原创 2021-01-19 11:17:55 · 19254 阅读 · 0 评论