
每日一题
文章平均质量分 59
叶落雨飘
emmmmm 我是一只小萌新~
展开
-
[算法练习及思路-leetcode每日一题(Java解法)]No517.超级洗衣机
题号:no517题目:超级洗衣机题目描述假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。在每一步操作中,你可以选择任意 m (1 <= m <= n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。给定一个整数数组 machines 代表从左至右每台洗衣机中的衣物数量,请给出能让所有洗衣机中剩下的衣物的数量相等的 最少的操作步数 。如果不能使每台洗衣机中衣物的数量相等,则返回 -1 。示例示例 1:输入:machin原创 2021-09-29 17:04:24 · 501 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No437.路径总和 III
题号:no437题目:437. 路径总和 III题目描述给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如图所示。示例 2:原创 2021-09-28 10:36:56 · 225 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No373.两整数之和
题号:no373题目:两整数之和题目描述给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例示例 1:输入:a = 1, b = 2输出:3示例 2:输入:a = 2, b = 3输出:5提示:-1000 <= a, b <= 1000思路1.将b的二进制位都加到a上2.a^b得到的值是a+b没有进位的值,a&b 得到的值 是得到哪个每个位置进位,左移一位得到进位3.将b的进位消耗完解题代码class Solu原创 2021-09-26 09:51:43 · 165 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No583.两个字符串的删除操作
题号:no583题目:两个字符串的删除操作题目描述给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例示例 1:输入: "sea", "eat"输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea"提示:给定单词的长度不超过500。给定单词中的字符只含有小写字母。思路1.这道题的题干也好,意思也好,基本就是编辑距离的缩小版,就是不能改字符串2.动态规划,字符原创 2021-09-25 22:38:23 · 142 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No725.分隔链表
题号:no725题目:分隔链表题目描述给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。这 k 个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。返回一个由上述 k 部分组成的数组。示例示例 1:输入:head = [1,2,3], k = 5输出:[[1],[2],[3],[],[]]解释原创 2021-09-22 22:36:23 · 173 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No58.最后一个单词的长度
题号:no58题目:最后一个单词的长度题目描述给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例示例 1:输入:s = "Hello World"输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = "luffy is still joyboy"输出:61 <= s.length <=原创 2021-09-21 14:39:46 · 141 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No746.使用最小花费爬楼梯
题号:no746题目名:使用最小花费爬楼梯原题URL:https://leetcode-cn.com/problems/min-cost-climbing-stairs/题目描述数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例示例 1:输入: cos原创 2020-12-21 10:49:39 · 151 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No714.买卖股票的最佳时机含手续费
题号:no714题目名:买卖股票的最佳时机含手续费原题URL:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/题目描述给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最原创 2020-12-17 18:09:22 · 148 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No290.单词规律
题号:no290题目名:单词规律原题URL:https://leetcode-cn.com/problems/word-pattern/题目描述给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例示例 1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:原创 2020-12-16 19:34:54 · 216 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No49.字母异位词分组
题号:no49题目名:字母异位词分组原题URL:https://leetcode-cn.com/problems/group-anagrams-lcci/题目描述编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。示例示例 1:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]限制原创 2020-12-14 09:52:15 · 216 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No376.摆动序列
题号:no376题目名:摆动序列原题URL:https://leetcode-cn.com/problems/wiggle-subsequence/题目描述如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它原创 2020-12-12 15:44:46 · 176 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No649.Dota2 参议院
题号:no649题目名:Dota2 参议院原题URL:https://leetcode-cn.com/problems/dota2-senate/题目描述Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。原创 2020-12-11 16:05:52 · 190 阅读 · 1 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No300.最长上升子序列
题号:no300题目名:最长上升子序列原题URL:https://leetcode-cn.com/problems/longest-increasing-subsequence/题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例示例 1:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。限制可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2原创 2020-12-11 15:31:03 · 178 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No860.柠檬水找零
题号:no860题目名:柠檬水找零原题URL:https://leetcode-cn.com/problems/string-rotation-lcci/题目描述在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true原创 2020-12-10 11:48:43 · 200 阅读 · 1 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No62.不同路径
题号:no62题目名:不同路径原题URL:https://leetcode-cn.com/problems/unique-paths/题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例示例 1:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 ->原创 2020-12-09 16:31:41 · 188 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No861.翻转矩阵后的得分
题号:no861题目名:翻转矩阵后的得分原题URL:https://leetcode-cn.com/problems/score-after-flipping-matrix/题目描述有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例示例 1:输入:[[0,0,1,1]原创 2020-12-07 21:26:37 · 187 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No659.分割数组为连续子序列
题号:no659题目名:分割数组为连续子序列原题URL:https://leetcode-cn.com/problems/split-array-into-consecutive-subsequences/题目描述给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。如果可以完成上述分割,则返回 true ;否则,返回 false 。示例示例 1:输入: [1,2,3,3,4,5]输出: True解释原创 2020-12-04 12:01:13 · 294 阅读 · 0 评论 -
[算法练习及思路-程序员面试金典(Java解法)]No204.计数质数
题号:no204题目名:计数质数原题URL:https://leetcode-cn.com/problems/string-rotation-lcci/题目描述统计所有小于非负整数 n 的质数的数量。示例示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0限制0 <= n <= 5 * 106思路1.从头到尾遍历,将所有的因子从0一直到根号n进行乘法运算2.如果相原创 2020-12-03 12:54:58 · 135 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No767.重构字符串
题号:no767题目名:重构字符串原题URL:https://leetcode-cn.com/problems/reorganize-string/题目描述给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例示例 1:输入: S = "aab"输出: "aba"示例 2:输入: S = "aaab"输出: ""限制S 只包含小写字母并且长度在[1, 500]区间内。思路1.如示例所示,就好像aa原创 2020-11-30 17:19:05 · 224 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No976.三角形的最大周长
题号:no976题目名: 三角形的最大周长原题URL:https://leetcode-cn.com/problems/relative-sort-array/题目描述给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]原创 2020-11-29 10:56:36 · 277 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No1370.上升下降字符串
题号:no1370题目名:上升下降字符串原题URL:https://leetcode-cn.com/problems/increasing-decreasing-string/comments/题目描述给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它原创 2020-11-25 13:23:10 · 157 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No452.用最少数量的箭引爆气球
题号:no452题目名:用最少数量的箭引爆气球原题URL:https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/题目描述在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的原创 2020-11-23 18:11:47 · 225 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No147.对链表进行插入排序
题号:no147题目名:对链表进行插入排序原题URL:https://leetcode-cn.com/problems/insertion-sort-list/题目描述插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在原创 2020-11-20 16:48:01 · 171 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No283.移动零
题号:no283题目名:移动零原题URL:https://leetcode-cn.com/problems/move-zeroes/题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例示例 1:输入: [0,1,0,3,12]输出: [1,3,12,0,0]限制必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。思路1.遍历数组,将不为0的数字往左边放,能保证顺序2.从不为0的后一位开始遍历,全部置为0解题代码原创 2020-11-19 11:37:57 · 115 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No134.加油站
题号:no134题目名:加油站原题URL:https://leetcode-cn.com/problems/gas-station/题目描述在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组原创 2020-11-18 21:05:46 · 179 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No1030.距离顺序排列矩阵单元格
题号:no1030题目名:距离顺序排列矩阵单元格原题URL:https://leetcode-cn.com/problems/matrix-cells-in-distance-order/题目描述给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两原创 2020-11-17 21:21:59 · 207 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No402.移掉K位数字
题号:no402题目名:移掉K位数字原题URL:https://leetcode-cn.com/problems/remove-k-digits/题目描述给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例示例 1:输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。原创 2020-11-15 15:33:21 · 195 阅读 · 0 评论 -
[算法练习及思路-leetcode每日一题(Java解法)]No1122.数组的相对排序
题号:no1122题目名:数组的相对排序原题URL:https://leetcode-cn.com/problems/relative-sort-array/题目描述给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例示例 1:输入:arr1 = [2,3,1,3,2,4,原创 2020-11-15 10:40:32 · 210 阅读 · 0 评论