![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日算法
Yi-27
小白一个...
展开
-
每日算法35_2020-12-20
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一316. 去除重复字母给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = “bcabc”输出:“abc”示例 2:输入:s = “cbacdcbc”输出:“acdb”提示:1 <= s.length <= 104s 由小写英文字母组成没做出来官方答案:贪心+单调栈.原创 2020-12-20 22:58:46 · 173 阅读 · 0 评论 -
每日算法33_2020-12-09
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 ->.原创 2020-12-09 09:27:55 · 271 阅读 · 0 评论 -
每日算法32_2020-12-08
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一842. 将数组拆分成斐波那契序列给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型);F.length >= 3;对于所有的0 <= i < F.原创 2020-12-08 10:20:18 · 176 阅读 · 0 评论 -
每日算法31_2020-12-07
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一861. 翻转矩阵后的得分有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 .原创 2020-12-07 10:42:11 · 132 阅读 · 0 评论 -
每日算法30_2020-12-06
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一5618. K 和数对的最大数目给你一个整数数组 nums 和一个整数 k 。每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。示例 1:输入:nums = [1,2,3,4], k = 5输出:2解释:开始时 nums = [1,2,3,4]:移出 1 和 4 ,之后 nums = [2,3]移出 2 和 3 ,之后 nums = .原创 2020-12-07 10:41:29 · 144 阅读 · 0 评论 -
每日算法28_2020-12-04
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一659. 分割数组为连续子序列给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。如果可以完成上述分割,则返回 true ;否则,返回 false 。示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出这样两个连续子序列 :1, 2, 33, 4, 5示例 2:输入: [1.原创 2020-12-04 10:36:43 · 139 阅读 · 0 评论 -
每日算法27_2020-12-03
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一204. 计数质数统计所有小于非负整数 n 的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106我的答案暴力枚举class Solution { public int countPr.原创 2020-12-03 19:25:40 · 87 阅读 · 0 评论 -
每日算法26_2020-12-02
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一321. 拼接最大数给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为 k 的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。示例 1:输入:nums1 = .原创 2020-12-02 14:52:24 · 139 阅读 · 0 评论 -
每日算法25_2020-12-01
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一34. 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4].原创 2020-12-01 14:24:58 · 86 阅读 · 0 评论 -
每日算法24_2020-11-30
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一767. 重构字符串给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例 1:输入: S = “aab”输出: “aba”示例 2:输入: S = “aaab”输出: “”注意:S 只包含小写字母并且长度在[1, 500]区间内。我没做出来没悟到maxCharCounts > (length + 1) / .原创 2020-11-30 15:39:07 · 115 阅读 · 0 评论 -
每日算法23_2020-11-29
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一976. 三角形的最大周长给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <.原创 2020-11-29 13:04:03 · 147 阅读 · 0 评论 -
每日算法22_2020-11-28
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一493. 翻转对给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。示例 1:输入: [1,3,2,3,1]输出: 2示例 2:输入: [2,4,3,5,1]输出: 3注意:给定数组的长度不会超过50000。输入数组中的所有数字都在32位整数的表示范围内。.原创 2020-11-29 09:00:50 · 186 阅读 · 0 评论 -
每日算法21_2020-11-27
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一454. 四数相加 II给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。例如:输入:A = .原创 2020-11-28 12:24:08 · 99 阅读 · 0 评论 -
每日算法20_2020-11-26
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一164. 最大间距给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素.原创 2020-11-26 10:42:51 · 106 阅读 · 0 评论 -
每日算法19_2020-11-25
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一1370. 上升下降字符串给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添.原创 2020-11-25 13:38:06 · 159 阅读 · 0 评论 -
每日算法18_2020-11-24
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一222. 完全二叉树的节点个数给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:输入: 1 / \ 2 3 / \ /4 5 6输出: 6暴力法递归法/** .原创 2020-11-25 13:37:46 · 88 阅读 · 0 评论 -
每日算法17_2020-11-23
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一452. 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xen.原创 2020-11-25 13:07:59 · 173 阅读 · 0 评论 -
每日算法16_2020-11-22
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这.原创 2020-11-25 13:07:39 · 82 阅读 · 0 评论 -
每日算法15_2020-11-21
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一148. 排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:.原创 2020-11-25 13:04:17 · 92 阅读 · 0 评论 -
每日算法14_2020-11-20
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一147. 对链表进行插入排序对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其.原创 2020-11-25 13:03:52 · 102 阅读 · 0 评论 -
每日算法13_2020-11-19
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。我的答案class Solution { public void moveZeroes(int[] nums) { int z.原创 2020-11-25 12:59:34 · 110 阅读 · 0 评论 -
每日算法12_2020-11-18
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7我的答案递归/** * Definition for .原创 2020-11-25 12:59:04 · 91 阅读 · 0 评论 -
每日算法11_2020-11-17
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3进阶:你可以运用递归和迭代两种方法解决这个问题吗?我的答.原创 2020-11-25 12:58:37 · 130 阅读 · 0 评论 -
每日算法10_2020-11-15
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。我的答案递归/** * Definition for a binary t.原创 2020-11-24 11:07:19 · 119 阅读 · 0 评论 -
每日算法9_2020-11-14
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一94. 二叉树的中序遍历给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]提示:.原创 2020-11-24 11:03:42 · 306 阅读 · 0 评论 -
每日算法8_2020-11-13
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4我的答案我没有答案,太菜了好的答案(看不太懂)class Solution { public ListNode mergeTwoLi.原创 2020-11-24 11:03:08 · 310 阅读 · 0 评论 -
每日算法7_2020-11-11
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一13. 罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列.原创 2020-11-24 10:58:05 · 131 阅读 · 0 评论 -
每日算法6_2020-11-10
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一1. 两数之和难度简单9570收藏分享切换为英文接收动态反馈给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9.原创 2020-11-24 10:57:34 · 78 阅读 · 0 评论 -
每日算法5_2020-06-22
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一一维数组的动态和给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。我的解答class Solution { public int[] runningSum(int[] nums) { int[] ret = new int[nums.length]; in.原创 2020-11-24 10:57:02 · 435 阅读 · 0 评论 -
每日算法4_2020-06-10
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一LCP 01. 猜数字 小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例1:输入:guess = [1,2,3], answer = [1,2,3].原创 2020-11-24 10:56:14 · 153 阅读 · 0 评论 -
每日算法3_2020-06-09
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一面试题58 - II. 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入: s = "abcdefg", k = 2输出: "cdefgab"示例2:输入: s = "lrloseumgh", k = 6输出: "um.原创 2020-11-24 10:55:46 · 62 阅读 · 0 评论 -
每日算法2_2020-06-08
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[tr.原创 2020-11-24 10:54:27 · 115 阅读 · 0 评论 -
每日算法1_2020-06-05
来源:题库 - 力扣 (LeetCode) (leetcode-cn.com)。侵删。题目一泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。示例 1:输入:n = 4输出:4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:输入:n = 25输出:1389537提示:.原创 2020-11-24 10:53:03 · 92 阅读 · 0 评论