![](https://img-blog.csdnimg.cn/20200303092940270.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Leecode
文章平均质量分 90
Leecode刷题经验总结
柯南二号
一个喜欢探讨Java后端技术的小白
展开
-
LeetCode283场周赛
6016. Excel 表中某个范围内的单元格Excel 表中的一个单元格 (r, c) 会以字符串 "<col><row>" 的形式进行表示,其中:即单元格的列号`c`用英文字母表中的字母标识。- 例如,第 `1` 列用 `'A'` 表示,第 `2` 列用 `'B'` 表示,第 `3` 列用 `'C'` 表示,以此类推。<row> 即单元格的行号 r 。第 r 行就用 整数 r 标识。给你一个格式为 "<col1><row1>:原创 2022-03-06 17:50:02 · 391 阅读 · 0 评论 -
21天掌握动态规划刷题指南 第二天
21天掌握动态规划第二天 线性动态规划2.1 53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nu原创 2021-07-03 16:18:18 · 116 阅读 · 6 评论 -
LeetCode 1734. 解码异或后的排列
1734. 解码异或后的排列题目描述:给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说,如果 perm = [1,3,2] ,那么 encoded = [2,1] 。给你 encoded 数组,请你返回原始数组 perm 。题目保证答案存在且唯一。示例 1:输入:encoded = [3,1]输出:[1,2,3原创 2021-05-11 09:57:13 · 188 阅读 · 0 评论 -
斐波拉切数列 java版本
斐波拉切数列 java版本试求FibnFib_nFibn样例输入:5输出:5算法1(暴力递推) O(n)想要存储他,很多人会想到用一维数组存储+递推。递推初值为Fib0=0,Fib1=1Fib_0=0,Fib_1=1Fib0=0,Fib1=1。递推式为Fibn=Fibn−1+Fibn−2Fib_n=Fib_{n-1}+Fib_{n−2}Fibn=Fibn−1+Fibn−2代码也很好实现:public class Solution { public static原创 2021-05-08 15:41:30 · 274 阅读 · 0 评论 -
1553. 吃掉 N 个橘子的最少天数
写算法对于引用集合类型的尽量使用全局变量,特别是记忆化递归搜索的题1553. 吃掉 N 个橘子的最少天数厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数 n 能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n 个橘子的最少天数。示例 1:输入:n = 10输出:4解释:你总共有 10 个橘子。第 1原创 2021-05-03 10:58:04 · 202 阅读 · 1 评论 -
Leecode202. 快乐数
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。解题思路:用快慢指针可以解决这种问题,定义一个求一个数每个位数上的数字的平方和的函...原创 2020-04-30 08:28:06 · 206 阅读 · 0 评论 -
Leecoe 72. 编辑距离
题目描述给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose ...原创 2020-04-06 21:59:37 · 175 阅读 · 0 评论 -
Leecode 42. 接雨水
题目描述:解题思想:这个题我们可以利用局部性最佳原理,将整个数组从最左边和最右边同时比较开始,在左半区内,水量为左边局部最大-当前深度,比如在题目给出的测试用例中1-0 = 1,2-1=1,2-0=2,2-1=1在右半区内,水量为右边局部最大-当前深度,比如在题目给出的测试用例中2-1=1所以测试用例总共可以接的雨水就是1 + 1 + 2 + 1 + 1 = 6class ...原创 2020-04-04 17:09:11 · 182 阅读 · 0 评论 -
Leecode 1111. 有效括号的嵌套深度
题目描述:有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。嵌套深度 depth 定义:即有效括号字符串嵌套的层数,depth(A) 表示有效括号字符串 A 的嵌套深度。详情参见题末「嵌套深度」部分。有效括号字符串类型与对应的嵌套深度计算方法如下图所示:给你一个「有效括号字符串」 seq,请你将其分成两个不相交的有效括号字符串,A...原创 2020-04-01 17:48:18 · 209 阅读 · 0 评论 -
Leecode912. 排序数组
给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000看到这个排序题,首先一般会想到Jav...原创 2020-03-31 17:30:32 · 212 阅读 · 0 评论 -
Leecode 面试题62. 圆圈中最后剩下的数字
题目描述:0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限...原创 2020-03-30 13:10:29 · 195 阅读 · 0 评论 -
Leecode 914.卡牌分组
题目描述:给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输入:[...原创 2020-03-27 09:46:54 · 170 阅读 · 0 评论 -
Leecode 999. 车的可用捕获量
题目描述:在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相反的卒。另外,...原创 2020-03-26 08:57:38 · 186 阅读 · 0 评论 -
Leecode 892. 三维形体的表面积
在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 4:输入:[[1,1,1],[1,0,...原创 2020-03-25 21:24:42 · 187 阅读 · 0 评论 -
Leecode 面试题 17.16. 按摩师
题目描述:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:输入: ...原创 2020-03-24 09:27:16 · 354 阅读 · 0 评论 -
Leecode 876. 链表的中间结点
题目描述:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans....原创 2020-03-23 09:20:31 · 181 阅读 · 0 评论 -
Leecode 5. 最长回文子串
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-sub...原创 2020-03-22 13:53:11 · 213 阅读 · 0 评论 -
Leecode365. 水壶问题
题目描述:有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1: (From the famous “Die Hard” example)输入: x = 3, y ...原创 2020-03-21 12:43:05 · 140 阅读 · 0 评论 -
Leecode面试题40. 最小的k个数
题目描述:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= ...原创 2020-03-20 20:26:03 · 188 阅读 · 0 评论 -
Leecode 409. 最长回文串
题目描述:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解题思想:遇到有提示字符串仅包含小写(或者大写)英文字母...原创 2020-03-19 10:00:10 · 191 阅读 · 0 评论 -
Leecode 836. 矩形重叠最简单易懂的一个思想
题目描述:矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:输入:...原创 2020-03-18 08:54:52 · 158 阅读 · 1 评论 -
Leecode 3. 无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “...原创 2020-03-17 19:49:01 · 175 阅读 · 0 评论 -
Leecode 1160. 拼写单词
class Solution { public int countCharacters(String[] words, String chars) { int[] charsOfCase = new int[26];//统计字符表中的字符 int count = 0;//单词长度之和 for(char c : chars.toCharArr...原创 2020-03-17 09:56:08 · 166 阅读 · 0 评论 -
Leecode 18. 四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数...原创 2020-03-16 19:56:19 · 169 阅读 · 1 评论 -
Leecode 面试题 01.06. 字符串压缩
题目描述:字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例2:输入:“abbccd”输出:“abbccd”解释:“abbccd"...原创 2020-03-16 10:13:25 · 257 阅读 · 0 评论 -
Leecode 24. 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.解题思路:首先建立一个虚拟的结点,用于来交换指针的使得虚拟结点指向头结点- 给虚拟结点赋值给pre指针只要头结点和头结点的下一个结点都不为空,那就交换fir...原创 2020-03-15 19:48:39 · 177 阅读 · 0 评论 -
Leecode 25. K 个一组翻转链表
题目描述:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2...原创 2020-03-15 13:50:40 · 143 阅读 · 0 评论 -
Leecode 695. 岛屿的最大面积
题目描述:给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,...原创 2020-03-15 12:06:02 · 224 阅读 · 0 评论 -
Leecode 242. 有效的字母异位词
242. 有效的字母异位词题目描述:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。解题方法:第一种:我们可以直观的用将字符串转换成字符数...原创 2020-03-15 09:05:28 · 198 阅读 · 0 评论 -
Leecode 300. 最长上升子序列
题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?贪心 + ...原创 2020-03-14 09:02:21 · 171 阅读 · 0 评论 -
Leecode 169. 多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)链接:https://leetcode-cn.co...原创 2020-03-13 16:53:20 · 335 阅读 · 0 评论 -
Leecode 1013. 将数组分成和相等的三个部分
给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1]) 就可以将数组三等分。示例 1:输出:[0,2...原创 2020-03-11 14:17:21 · 348 阅读 · 0 评论 -
Leecode543. 二叉树的直径
题目描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。解题思维:...原创 2020-03-10 13:32:29 · 167 阅读 · 0 评论 -
Leecode面试题43. 1~n整数中1出现的次数
输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6限制:1 <= n < 2^31解题思路:利用动态规划的思想来解决这个题每次用 n / i并用一个变量将其存储起来,同时将它的余数存储起...原创 2020-03-09 13:38:37 · 211 阅读 · 0 评论 -
Leecode121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是...原创 2020-03-09 13:08:10 · 191 阅读 · 1 评论 -
Leecode 面试题57 - II. 和为s的连续正数序列
题目描述:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <...原创 2020-03-06 19:44:02 · 207 阅读 · 0 评论 -
Leecode1103 分糖果
分糖果 II排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都...原创 2020-03-05 20:32:03 · 220 阅读 · 0 评论 -
Leecode面试题64
求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1 <= n <= 10000解题技巧:其实我们口头上就可以知道最后答案会是n * (n + 1) / 2=(n ^ 2 + n) / 2那么,...原创 2020-03-04 19:54:53 · 333 阅读 · 0 评论 -
Leecode1124表现良好的最长时间段
给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。请你返回「表现良好时间段」的最大长度。示例 1:输入:hours = [9,9,6,0,6,6,9]输出:3解释:最长的表现良好时间段是 [9,...原创 2020-03-03 20:32:38 · 436 阅读 · 0 评论 -
Leecode 面试题09用两个栈实现队列
题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[nul...原创 2020-03-03 10:29:12 · 283 阅读 · 0 评论