LeetCode
文章平均质量分 67
haikuotiankongdong
这个作者很懒,什么都没留下…
展开
-
文件的最长绝对路径
题目假设文件系统如下图所示:这里将 dir 作为根目录中的唯一目录。dir 包含两个子目录 subdir1 和 subdir2 。subdir1 包含文件 file1.ext 和子目录 subsubdir1;subdir2 包含子目录 subsubdir2,该子目录下包含文件 file2.ext 。在文本格式中,如下所示(⟶表示制表符):dir⟶ subdir1⟶ ⟶ file1.ext⟶ ⟶ subsubdir1⟶ subdir2⟶ ⟶ subsubdir2⟶ ⟶ ⟶ file2.e原创 2021-09-19 19:23:18 · 575 阅读 · 1 评论 -
删除子数组的最大得分
给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素 的子数组。删除子数组的 得分 就是子数组各元素之 和 。返回 只删除一个 子数组可获得的 最大得分 。如果数组 b 是数组 a 的一个连续子序列,即如果它等于 a[l],a[l+1],…,a[r] ,那么它就是 a 的一个子数组。示例 1:输入:nums = [4,2,4,5,6]输出:17解释:最优子数组是 [2,4,5,6]示例 2:输入:nums = [5,2,1,2,5,2,1,2,5]输出:8解释:最优子数组是原创 2021-08-29 19:50:51 · 438 阅读 · 0 评论 -
买卖股票的最佳时机含手续费
题目给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 :输入:prices = [1, 3, 2, 8, 4, 9], fee = 2输出:8解释:能够达到的最大利润: 在此处买入 pri原创 2021-08-29 18:02:01 · 239 阅读 · 0 评论 -
分割数组的最大值410
题目描述:给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。示例 1:输入:nums = [7,2,5,10,8], m = 2输出:18解释:一共有四种方法将 nums 分割为 2 个子数组。 其中最好的方式是将其分为 [7,2,5] 和 [10,8] 。因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。示例 2:输入:nums = [1,2,3,4,5], m = 2输出:原创 2021-08-03 10:08:35 · 190 阅读 · 0 评论 -
分隔数组以得到最大和
题目描述:给出整数数组 A,将该数组分隔为长度最多为 K 的几个(连续)子数组。分隔完成后,每个子数组的中的值都会变为该子数组中的最大值。返回给定数组完成分隔后的最大和。示例:输入:A = [1,15,7,9,2,5,10], K = 3输出:84解释:A 变为 [15,15,15,9,10,10,10]提示:1 <= K <= A.length <= 5000 <= A[i] <= 10^6代码/* * Copyright (c) Huawei Tec原创 2021-08-03 10:00:52 · 412 阅读 · 0 评论 -
最大矩形(求直方图围成的最大矩形面积)
给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。思路其实这道题只是(求直方图围成的最大矩形面积)的升级版本如下图求直方图围成的最大矩形面积的解法就是遍历每一个然后向左向右寻找,这道题可以把每一层来类比操作链接https://blog.csdn.net/weixin_41563161/article/details/109023051?ops_request_misc=%257B%2522request%255Fid%252原创 2021-07-21 21:34:25 · 554 阅读 · 0 评论 -
种花问题
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植z在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = 1输出: True示例 2:输入: flowerbed = [1,0,0,0,1], n = 2输出: False注原创 2020-10-30 08:40:49 · 84 阅读 · 0 评论 -
【leetcode---hot100】22. 字母异位词分组
题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例 1:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。思路方法一:排序字母相同,但排列不同的字符串,排序后都一定是相同的。因为每种字母的个数都是相同的,那么排序后的字符串就一定原创 2021-03-31 19:17:49 · 147 阅读 · 0 评论 -
【leetcode---hot100】17. 下一个排列
题目实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]示例 4:输入:nums = [1]输出:[1]提示:1 <= n原创 2021-03-30 10:17:51 · 131 阅读 · 0 评论 -
【leetcode---hot100】14. 合并K个升序链表
题目给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists = []原创 2021-03-30 08:29:15 · 149 阅读 · 0 评论 -
【leetcode---hot100】11. 有效的括号
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true提示:1 <= s.lengt原创 2021-03-26 21:32:26 · 152 阅读 · 0 评论 -
4.1 LeetCode--最长回文串(暴力法,中心扩展,动态规划)
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”1 判断一个字符串是否是回文串(左右对称)单个数字默认为是public class isPlalindrome { public static voi...原创 2019-09-16 20:15:11 · 255 阅读 · 0 评论 -
【leetcode---hot100】4. 寻找两个正序数组的中位数
题目寻找两个正序数组的中位数。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:输入:nums1 = [0,0], nums2 = [0,0]输出:0.00000示例 4:输入:nums1 = [],原创 2021-03-18 20:24:11 · 218 阅读 · 0 评论 -
1、8 leetcode:两数之和,三数之和,和为定值子集组合
leetcode:两数之和,三数之和两数之和题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, ...原创 2020-03-09 21:55:53 · 846 阅读 · 0 评论 -
2、7 LeetCode(两数相加) 两数相加 II 链表的形式
两数相加给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> ...原创 2020-03-10 12:44:02 · 137 阅读 · 0 评论 -
LeetCode---无重复字符的最长子串
无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。...原创 2020-03-11 11:01:54 · 159 阅读 · 0 评论 -
3 、leetcode 无重复字符的最长子串
无重复字符的最长子串class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(); Set<Character> sets = new HashSet<>...原创 2020-04-12 15:02:30 · 105 阅读 · 0 评论 -
求直方图围成的最大矩形面积
求直方图围成的最大矩形面积有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。比如上面的数组{2,1,5,6,2,3},其最大矩形面积如下所示可以看出其面积为10。public static int max_Area(int[] height, int n原创 2020-10-12 10:34:51 · 1100 阅读 · 0 评论 -
26 中缀表达式求值(中缀转后缀,后缀求值)
中缀表达式import java.util.ArrayList;import java.util.Stack;/** * * @author yhh * */public class Calculate { /** * 将字符串转化成List * @param str * @return */ public ArrayList<St...原创 2020-05-13 10:32:14 · 272 阅读 · 0 评论 -
leetCode---两两交换链表中的节点
两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3./** * Definition for singly-linked li...原创 2020-05-07 22:01:53 · 186 阅读 · 0 评论 -
字节算法题--N阶台阶,每次走一步或两步,计算共有多少种走法,并将每种走法打印出来。
N阶台阶,每次走一步或两步,计算共有多少种走法,打印出每种走法。/** * @Auther: liuhaidong * Data: 2020/4/26 0026、14:50 * Description: * @version: 1.0 */public class Test7 { static final int s = 4; //自定义的台阶数 stat...原创 2020-04-27 11:11:42 · 2665 阅读 · 0 评论 -
25 逆波兰表达式、波兰表达式
逆波兰表达式、波兰表达式1.前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前。比如:- × + 3 4 5 62.中缀表达式就是常见的运算表达式,如(3+4)×5-63.后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后,比如:3 4 + 5 × 6一.通过逆波兰表达式计算结果我们先看一个例子.....原创 2020-04-25 12:08:17 · 342 阅读 · 0 评论 -
9 LeetCode 树中两个结点的最低公共祖先
树中两个结点的最低公共祖先二叉搜索树的最近公共祖先题目要求从根结点为root的树返回p、q的最近公共祖先,使用递归,很自然地,如果p、q均小于root,则应该由root的左子树返回p、q的最近公共祖先;如果p、q均大于root,则应该由root的右子树返回p、q的最近公共祖先。由此可以写出递归代码。直到p、q既不同时大...原创 2020-04-12 23:27:20 · 186 阅读 · 0 评论 -
数组中重复的数字
数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3...原创 2020-04-12 22:35:00 · 100 阅读 · 0 评论 -
转置矩阵
转置矩阵给定一个矩阵A,返回A的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,...原创 2020-04-07 23:32:07 · 288 阅读 · 0 评论 -
62 剑指offer---二叉搜索树的第k大节点
二叉搜索树的第k大节点示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 ...原创 2020-03-18 00:22:59 · 125 阅读 · 0 评论 -
LeetCode---柠檬水找零
柠檬水找零在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。...转载 2020-03-14 17:37:42 · 213 阅读 · 0 评论 -
2验证回文字符串 Ⅱ
验证回文字符串 Ⅱ给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。class Solution { public boolean validPal...原创 2020-03-14 16:54:05 · 140 阅读 · 0 评论 -
LeetCode---最长公共前缀
最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前...原创 2020-03-13 01:09:20 · 107 阅读 · 0 评论 -
LeetCode--排列组合
原创 2019-10-30 15:32:05 · 213 阅读 · 0 评论 -
LeetCode--二叉搜索树(二分法 二叉搜索树)
将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树...原创 2019-10-09 15:09:31 · 246 阅读 · 0 评论 -
LeetCode--二叉树的最小深度(迭代)
二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2....原创 2019-10-07 22:00:35 · 227 阅读 · 1 评论 -
58 剑指offer--对称二叉树(迭代法 队列)
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[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方法1 递归法采用之前两个...原创 2019-10-07 15:05:10 · 188 阅读 · 0 评论