自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 502.IPO-Java

502.IPO-Java题目描述假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将

2021-09-08 10:51:50 176

原创 面试题17.14.最小K个数Java

面试题17.14.最小K个数Java题目描述设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可输入输出样式示例1:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]本题来自LeetCode:https://leetcode-cn.com/problems/smallest-k-lcci/思路方法一:将数组排序后,返回最小的K个数方法二:利用堆。先将数组的前k个数插入大堆顶,然后依次将剩下的数比较,如果当前数比大堆顶的顶的数还要

2021-09-07 10:47:21 182

原创 470.用Rand7()实现Rand10()Java

470.用Rand7()实现Rand10()Java题目描述已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法输入输出样式示例1:输入: 1输出: [7]示例2:输入: 3输出: [8,1,10]本题来自LeetCode:https://leetcode-cn.com/problems/implement-rand10-using-rand7/思路

2021-09-07 10:37:45 191

原创 704.二分查找Java

704.二分查找Java题目描述给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入输出样式示例1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返

2021-09-07 10:31:38 153

原创 1221.分割平衡字符串Java

1221.分割平衡字符串Java题目描述在一个平衡字符串中,‘L’ 和 ‘R’ 字符的数量是相同的。给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。注意:分割得到的每个字符串都必须是平衡字符串。返回可以通过分割得到的平衡字符串的最大数量 。输入输出样式示例1:输入:s = “RLRRLLRLRL”输出:4解释:s 可以分割为 “RL”、“RRLL”、“RL”、“RL” ,每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。示例2:输入:s = “RLRRRLLRLL”

2021-09-07 10:22:13 105

原创 剑指Offer22.链表中倒数第k个节点Java

剑指Offer22.链表中倒数第k个节点Java题目描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点输入输出样式示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.本题来自LeetCode:https://leetcode-c

2021-09-02 10:44:46 86

原创 165.比较版本号Java

165.比较版本号Java题目描述假给你两个版本号version1和version2,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个’.’连接。每个修订号由多位数字组成,可能包含前导零。每个版本号至少包含一个字符。修订号从左到右编号,下标从О开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。例如,2.5.33和0.1都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较忽略任何前导零后的整数值。也就是说,修订号1和修订号001相等。如果

2021-09-01 23:20:42 349

原创 70.爬楼梯Java

70.爬楼梯Java题目描述假设你正在爬楼梯,需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。输出你可以采用多少种方法爬到楼顶。其中n为正整数。输入输出样式示例1:输入:2输出:2解释:两种方法可以爬到楼顶⑴ 1阶 + 1阶⑵ 2阶示例2:输入:3输出:3解释:三种方法可以爬到楼顶⑴ 1 + 1 + 1⑵ 1 + 2⑶ 2 + 1本题来自LeetCode:https://leetcode-cn.com/problems/climbing-stairs/思路非递归

2021-08-15 10:16:07 140

原创 671.二叉树中第二小的节点Java

671.二叉树中第二小的节点Java题目描述给定一个非空特殊的二叉树,每个节点都为正数,输入输出样式示例1:输入:n = 27输出:true示例2:输入:n = 0输出:false本题来自LeetCode:https://leetcode-cn.com/problems/power-of-three/思路迭代。一直将当前数字%3的余数为零就将其循环除3。算法分析时间复杂度O(logb (n))b为迭代的次数,空间复杂度为O(1)求解函数public boolean isP

2021-08-11 11:24:13 111

原创 326.3的幂Java

326.3的幂Java题目描述给一个整数,判断它是否是3的幂次方,如果是则返回true,否则返回false。整数 x 是 3 的幂次方满足:x == 3ⁿ输入输出样式示例1:输入:n = 27输出:true示例2:输入:n = 0输出:false本题来自LeetCode:https://leetcode-cn.com/problems/power-of-three/思路迭代。一直将当前数字%3的余数为零就将其循环除3。算法分析时间复杂度O(logb (n))b为迭代的次数,

2021-07-29 16:17:21 73

原创 算法-前缀和Java

一.一维数组的前缀和对于一维数组而言,所谓前缀和,顾名思义,就是当前位置及之前的元素的总和。比如数组nums = {1, 2 ,3 ,4, 5},那么它的前缀和数组prefixSum = {1, 1 + 2, 1 + 2 + 3, 1 + 2 + 3 +4, 1 + 2 + 3 + 4 + 5},即{1, 3, 6, 10, 15}for (int i = 0; i < nums.length; ++i) { if (i == 0) { prefixSum[i] = nums[i]; }

2021-07-19 15:53:23 607 1

原创 98.验证二叉搜索树Java

98.验证二叉搜索树Java题目描述给定一个二叉树,判断它是不是一个有效的二叉搜索树。二叉搜索树满足:节点的左子树只包含小于当前节点的数;节点的右子树只包含大于当前节点的数;所有左子树和右子树自身必须也是二叉搜索树。输入输出样式示例1:tn = [1, null, 2, 3]输出:[1, 3, 2]示例2:tn = [1, 2]输出:[2, 1]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-inorder-trav

2021-07-17 21:40:24 154 1

原创 145.二叉树的后序遍历Java

145.二叉树的后序遍历Java题目描述给定一个二叉树的根节点root,返回它的后序遍历顺序。输入输出样式示例1:tn = [1, null, 2, 3]输出:[3, 2, 1]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/思路非递归的方法,用到栈。算法分析时间复杂度O(n),空间复杂度为O(n)求解函数public List<Integer> inOrd

2021-07-17 21:16:27 105

原创 94.二叉树的中序遍历Java

94.二叉树的中序遍历Java题目描述给定一个二叉树的根节点root,返回它的中序遍历顺序。输入输出样式示例1:tn = [1, null, 2, 3]输出:[1, 3, 2]示例2:tn = [1, 2]输出:[2, 1]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/思路非递归的方法,用到栈。与非递归前序遍历基本相同。不同的在于,前序在寻找最左下方的节点的同时将当前遍历

2021-07-17 16:43:53 151

原创 144.二叉树的前序遍历Java

144.二叉树的前序遍历Java题目描述给定一个二叉树的根节点root,返回它的前序遍历顺序。输入输出样式示例1:tn = [1, null, 2, 3]输出:[1, 2, 3]示例2:tn = [1, 2]输出:[1, 2]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/思路非递归的方法,用到栈。首先把将输入树根一直遍历到最左下方的节点,再返回,同时判断右子树的情况,进

2021-07-17 16:27:18 125

原创 101.对称二叉树Java

101.对称二叉树Java题目描述给定一个二叉树,检查它是否是镜像对称的。输入输出样式示例1:tn = [1,2,2,3,4,4,3]输出:true示例2:tn = [1,2,2,null,3,null,3]输出:false本题来自LeetCode:https://leetcode-cn.com/problems/symmetric-tree/思路利用递归的思想,一棵树是否满足镜像对称,比较左右两个子树,且左子树的左子树要和右子树的右子树比较。算法分析时间复杂度O(n),

2021-07-13 15:37:28 139

原创 102.二叉树的层序遍历Java

102.二叉树的层序遍历Java题目描述给你一个二叉树,请你返回其按层次遍历得到的节点值。即逐层从左到右访问所有节点。输入输出样式示例1:tn = [3,9,20,null,null,15,7]输出:[[3], [9, 20], [15, 7]]本题来自LeetCode:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/思路利用队列完成对二叉树的层次遍历, 初始化将根节点入队,在当前的队列非空则进行出

2021-07-13 10:38:19 105

原创 根据二维数组创建二叉树Java

根据二维数组创建二叉树Java在LeetCode刷题的时候,遇到二叉树的题目,想要自己在Idea上调试,发现不回创建二叉树。查了资料后,记录一下,根据二维数组递归创建二叉树。public TreeNode createBTree(int []array, int index) { TreeNode tn = null; if (index < array.length) { int value = array[index];

2021-07-12 21:06:40 920

原创 104.二叉树的最大深度Java

104.二叉树的最大深度Java题目描述给定一颗二叉树,返回该二叉树的最大深度。输入输出样式示例1:给定二叉树 [3,9,20,null,null,15,7]本题来自LeetCode:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/思路方法一:深度优先遍历(递归),以当前遍历节点为根节点的二叉树的最大深度为Max(左子树的深度,右子树的深度) + 1. 这就是整个递归的主要思想。方法二:广度优先遍历,每次将一

2021-07-12 17:30:14 166

原创 275.H指数ⅡJava

275.H指数ⅡJava题目描述给定论文被引用次数的数组(被引用次数非负),计算h 指数。数组已经按照升序排列。h 指数的定义:总共有 h 篇论文分别被引用了至少 h 次。且其余的 N - h 篇论文每篇被引用次数 不超过 h 次。输入输出样式示例1:输入:citations = [3,0,6,1,5]输出:3解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。由于研究者有 3 篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多

2021-07-12 17:10:16 93

原创 274.H指数Java

274.H指数Java题目描述给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。且其余的 N - h 篇论文每篇被引用次数 不超过 h 次。例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇输入输出样式示例1:输入:cit

2021-07-12 17:06:26 165

原创 28.实现strStr()Java

28.实现strStr()Java题目描述实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。当 needle 是空字符串时我们应当返回 0。输入输出样式示例1:输入:haystack = “hello”, needle = “ll”输出:2示例2:输入:haystack = “”, needle = “”输出:0本题来自Lee

2021-07-08 20:27:57 98

原创 451.根据字符出现频率排序Java

451.根据字符出现频率排序Java题目描述给定一个字符串,请将字符串里的字符按照出现的频率降序排列。输入输出样式示例1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案示例2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同的字母必须放在一起。示例3

2021-07-08 20:01:41 244

原创 14.最长公共前缀Java

14.最长公共前缀Java题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。输入输出样式示例1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀本题来自LeetCode:https://leetcode-cn.com/problems/longest-common-prefix/思路方法一

2021-07-08 15:07:42 222

原创 645.错误的集合Java

645.错误的集合Java题目描述集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。输入输出样式示例1:输入:nums = [1,2,2,4]输出:[2,3]示例2:输入:nums = [1,1]输出:[1,2]本题来自LeetCode:h

2021-07-05 10:56:35 109

原创 125.验证回文串Java

125.验证回文串Java题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入输出样式示例1:输入: “A man, a plan, a canal: Panama”输出: true示例2:输入: “race a car”输出: false本题来自LeetCode:https://leetcode-cn.com/problems/valid-palindrome/思路用双指针头尾往中间扫描,

2021-07-05 10:45:42 160

原创 242.有效的字母异位词Java

242.有效的字母异位词Java题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。输入输出样式示例1:输入: s = “anagram”, t = “nagaram”输出: true示例2:输入: s = “rat”, t = “car”输出: false本题来自LeetCode:https://leetcode-cn.com/problems/valid-anagram/思路直接把两个字符串转为字符数组,然后遍历对比二者即可。算法分析时

2021-07-05 10:35:23 67

原创 387.字符串中的第一个唯一字符Java

387.字符串中的第一个唯一字符Java题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。输入输出样式示例1:s = “leetcode”返回 0示例2:s = “loveleetcode”返回 2本题来自LeetCode:https://leetcode-cn.com/problems/first-unique-character-in-a-string/思路利用HashMap,首先遍历字符串,存储每个字符和它出现的次数。第二遍再遍历

2021-07-02 14:36:45 108

原创 1833.雪糕的最大数量Java

1833.雪糕的最大数量Java题目描述夏日炎炎,小男孩 Tony 想买一些雪糕消消暑。商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金价格。Tony 一共有 coins 现金可以用于消费,他想要买尽可能多的雪糕。给你价格数组 costs 和现金量 coins ,请你计算并返回 Tony 用 coins 现金能够买到的雪糕的 最大数量 。注意:Tony 可以按任意顺序购买雪糕。输入输出样式示例1:输入:costs =

2021-07-02 10:21:08 114

原创 2.两数相加Java

7.整数反转Java题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。输入输出样式示例1:输入:x = 123输出:321示例2:输入:x = -123输出:-321本题来自LeetCode:https://leetcode-cn.com/problems/reverse-integer/思路方法

2021-07-02 10:15:54 68

原创 7.整数反转Java

7.整数反转Java题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。输入输出样式示例1:输入:x = 123输出:321示例2:输入:x = -123输出:-321本题来自LeetCode:https://leetcode-cn.com/problems/reverse-integer/思路每次

2021-06-30 14:15:27 172

原创 344.反转字符串Java

344.反转字符串Java题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。输入输出样式示例1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]本题来自LeetCode:h

2021-06-30 09:55:08 162

原创 168.Excel表列名称Java

168.Excel表列名称Java题目描述给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。输入输出样式示例1:输入:columnNumber = 1输出:“A”示例2:输入:columnNumber = 28输出:“AB”示例3:输入:columnNumber = 701输出:“ZY”本题来自LeetCode:https://leetcode-cn.com/problems/excel-sheet-column-title/思路乍一看类似

2021-06-30 09:31:04 122

原创 121.买卖股票的最佳时机Java

121.买卖股票的最佳时机Java题目描述给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。输入输出样式示例1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,

2021-06-29 14:30:09 119

原创 48.旋转图像Java

48.旋转图像Java题目描述给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。输入输出样式示例1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12

2021-06-28 19:57:06 140

原创 36.有效的数独Java

36.有效的数独Java题目描述请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示输入输出样式示例1:输入:board =[[“5”,“3”,".",".",“7”,".",".",".","."],[“6”,".",".",“1”,“9”,“

2021-06-28 16:17:55 154

原创 349.两个数组的交集Java

349.两个数组的交集Java题目描述给定两个数组,编写一个函数来计算它们的交集。输入输出样式示例1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]本题来自LeetCode:https://leetcode-cn.com/problems/intersection-of-two-arrays/思路利用HashSet只能存放不同的元素的特点。分别

2021-06-27 14:46:50 57

原创 350.两个数组的交集ⅡJava

350.两个数组的交集ⅡJava题目描述给定两个数组,编写一个函数来计算它们的交集。输入输出样式示例1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]本题来自LeetCode:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/思路方法一:双重循环暴力破解。每遍历nu

2021-06-25 16:54:13 64

原创 189.旋转数组Java

189.旋转数组Java题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。输入输出样式示例1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]

2021-06-24 14:33:48 141 1

原创 136.只出现一次的数字Java

136.只出现一次的数字Java题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素输入输出样式示例1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4本题来自LeetCode:https://leetcode-cn.com/problems/single-number/思路利用异或运算的性质:a ^ b ^ a = b。也就是说同一个数字异或两次就抵消了,将数组所有数组异或到一起,只出现过一

2021-06-24 09:53:54 108

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除