
leetcode-easy
lisin-lee-cooper
这个作者很懒,什么都没留下…
展开
-
【LeetCode70】爬楼梯
一.问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶二.示例代码public class ClimbStairs { public static void main(String[] args) { int n = 42; int result = climbStairs(n)原创 2022-02-18 11:13:20 · 80 阅读 · 0 评论 -
【leetcode55】最大子数组和
一.问题描述给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。二.示例代码public class MaximumSubarraySum { public static void main(String[] args) { int[]原创 2022-02-18 10:40:05 · 272 阅读 · 0 评论 -
【leetcode70】爬楼梯
一.问题描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶二.示例代码public class ClimbStairs70 { public static void main(String[] args) { int result = climbStairs(7);原创 2021-09-02 14:05:58 · 60 阅读 · 0 评论 -
【leetcode21】合并两个有序链表
一.问题描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]二.示例代码public class MergeTwoOrderedLinkList21 { public static void main(String[] args) { ListNode l1 = new ListNode(1); ListNo原创 2021-08-27 14:32:20 · 75 阅读 · 0 评论 -
【leetcode20】有效的括号
一.问题描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true二.示例代码public class ValidParentheses20 { static Map<Character, Character> map = new HashMap<Character, Character>原创 2021-08-26 23:59:41 · 77 阅读 · 0 评论 -
【leetcode14】最长公共前缀
一.问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”二.示例代码public class LongestCommonPrefix14 { public static void main(String[] args) { String[] strs = new String[]{"flower", "flow", "flight原创 2021-08-26 11:15:05 · 67 阅读 · 0 评论 -
【leetcode9】回文数
一.问题描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true二.示例代码public class PalindromeNumber9 { public static void main(String[] args) { int num = 121; boolean r原创 2021-08-25 11:10:38 · 64 阅读 · 0 评论 -
【leetcode7】整数反转
一.问题描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321二.示例代码public class IntegerInversion7 { public static void main(String[] args) { int num = 123;原创 2021-08-24 15:58:06 · 63 阅读 · 0 评论 -
【leetcode412】FizzBuzz
一.问题描述写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。二.实例代码public static void main(String[] args) { int n = 15; List<String> result = fizzBuzz(n); for (Strin原创 2021-04-26 10:49:43 · 130 阅读 · 0 评论 -
【leetcode387】字符串中第一个唯一字符
一.问题描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2二.示例代码public static void main(String[] args) { String s = "leetcode"; int result = firstUniqueChar2(s); System.out.pri原创 2021-04-25 20:17:43 · 106 阅读 · 0 评论 -
【leetcode350】两个数组的交集2
一.问题描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,哪种方法更优?如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?二.示例代码public static void main(String[] arg原创 2021-04-25 19:56:07 · 65 阅读 · 0 评论 -
【leetcode344】反转字符串
一.问题描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]二.示例代码public static void main(String[] args) {原创 2021-04-25 14:57:30 · 113 阅读 · 0 评论 -
【leetcode326】3得幂
一.问题描述给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x示例 1:输入:n = 27输出:true示例 2:输入:n = 0输出:false二.示例代码public static void main(String[] args) { int n = 9; boolean result = threePower2(n);原创 2021-04-25 14:43:41 · 93 阅读 · 0 评论 -
【leetcode160】相交链表
一.问题描述编写一个程序,找到两个单链表相交的起始节点。输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,原创 2021-04-16 11:50:40 · 76 阅读 · 0 评论 -
【leetcode21】合并两个有序列表
一.问题描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]二.示例代码public class MergeTwoList { public static void main(String[] args) { ListNode listNode1 = new ListNode(1); ListNode listN原创 2021-04-08 17:11:08 · 143 阅读 · 0 评论 -
【leetcode20】有效的括号
一.问题描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true二.示例代码 private static final Map<Character, Character> map = new HashMap<Character, Character>() {{ put('{',原创 2021-04-07 20:31:56 · 94 阅读 · 1 评论 -
【leetcode14】最长公共前缀
一.问题描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”二.示例代码public static String getMostCommonPrefix(String[] strs) { if (strs == null || strs.length == 0) { return "";原创 2021-04-07 20:00:05 · 75 阅读 · 0 评论 -
【leetcode13】罗马数字转整数
一.问题描述罗马数字包含以下七种字符: I (1), V(5), X(10), L(50),C(100),D (500)和 M(1000)。示例 1:输入: “IV”输出: 4二.示例代码public class RomanToInt { public static void main(String[] args) { String str = "VI"; Integer result = romanToInt(str); System.原创 2021-04-06 15:16:08 · 73 阅读 · 0 评论 -
【leetcode07】整数反转
一.问题描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321二.示例代码 private static Integer reverse(int number) { int result = 0; while (number != 0) {原创 2021-04-06 14:27:27 · 119 阅读 · 0 评论 -
【leetcode01】两数之和
一.问题描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。二.实例代码public class TwoSum { public static void main(String[] args) { int[] nums = new int[]{2, 7, 11, 15};原创 2021-04-06 10:45:45 · 176 阅读 · 0 评论 -
【leetcode283】移动零
一.问题描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。二.示例代码public static void main(String[] args) { int[] nums = new int[]{0, 1, 0, 3, 12}; moveZer原创 2021-04-24 17:00:22 · 71 阅读 · 0 评论 -
【leetcode268】丢失的数字
一.问题描述给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。二.示例代码public static void main(String[]原创 2021-04-24 16:32:15 · 130 阅读 · 0 评论 -
【leetcode242】有效的字母异位数
一.问题描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false二.示例代码public static void main(String[] args) { String s = "anagram", t = "nagaram"; boolean resul原创 2021-04-24 15:48:26 · 67 阅读 · 0 评论 -
【leetcode237】删除链表中的节点
一.问题描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入:head = [4,5,1,9], node = 1输出:原创 2021-04-23 00:44:45 · 117 阅读 · 0 评论 -
【leetcode234】回文链表
一.问题描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?二.示例代码public static void main(String[] args) { ListNode listNode1 = new ListNode(1); ListNode listNode2 =原创 2021-04-22 11:42:55 · 77 阅读 · 0 评论 -
【leetcode217】存在重复数
一.问题描述给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false二.示例代码public static void main(String[] args) { int[] nums = new int[]{1,2,3,1}; boolean res原创 2021-04-22 10:43:33 · 85 阅读 · 0 评论 -
【leetcode208】链表反转
一.问题描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL二.示例代码public class ReverseList208 { public static void main(String[] args) { ListNode listNode5 = new ListNode(5, null); ListNode listN原创 2021-04-20 00:36:46 · 65 阅读 · 0 评论 -
【leetcode172】阶乘后的零
一问题描述给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。二示例代码public static void main(String[] args) { int number = 100; int zero = fa原创 2021-04-19 11:24:06 · 75 阅读 · 0 评论 -
【leetcode171】Excel表列序号
一问题描述给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: “A”输出: 1示例 2:输入: “AB”输出: 28二示例代码 public static void main(String[] args) { String str = "ZY"; int number = titl原创 2021-04-19 10:39:46 · 79 阅读 · 0 评论 -
【leetcode169】多数元素
一问题描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2二示例代码public static void main(String[] args) { int[] nums = new int[]{2, 2, 1, 1, 1, 2原创 2021-04-16 14:48:43 · 70 阅读 · 0 评论 -
【leetcode163】缺失的区间
一.问题描述给定一个排序的整数数组 nums ,其中元素的范围在 闭区间 [lower, upper] 当中,返回不包含在数组中的缺失区间。示例:输入: nums = [0, 1, 3, 50, 75], lower = 0 和 upper = 99,输出: [“2”, “4->49”, “51->74”, “76->99”]二.示例代码public static void main(String[] args) { int[] nums = new in原创 2021-04-16 14:16:26 · 257 阅读 · 1 评论 -
【leetcode141】环形链表
一.问题描述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:原创 2021-04-15 11:32:30 · 73 阅读 · 0 评论 -
【leetcode136】只出现一次的数字
一.问题描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1二.示例代码public static void main(String[] args) { int[] nums = new int[]{2,2,1}; int num = onceNumber(nums);原创 2021-04-15 00:15:22 · 66 阅读 · 0 评论 -
【leetcode125】验证回文串
一.问题描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true二.示例代码public static boolean verifyPalindromeString(String palindrome) { for (int i = 0, j = palindrome.length() - 1; i <原创 2021-04-14 11:11:05 · 70 阅读 · 0 评论 -
【leetcode121】买卖股票的最佳时机
一.问题描述给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5输入:prices = [7,6,4,3,1]输出:0二.示例代码private static int stockMaxProfit原创 2021-04-13 23:48:29 · 159 阅读 · 0 评论 -
【leetcode108】将有序数组转化为二叉搜索数
一.问题描述给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。\高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:二.示例代码public static void main(String[] args原创 2021-04-13 19:43:41 · 76 阅读 · 0 评论 -
【leetcode101】对称二叉树
一.问题描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3二.示例代码public static void main(String[] args) { TreeNode treeNode = new TreeNode(1); TreeNode treeNode2 = new TreeNode(2); TreeNo原创 2021-04-13 19:11:55 · 74 阅读 · 0 评论 -
【leetcode104】二叉树的最大深度
一.问题描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。二.示例代码public static void main(String[] args) { // 给定二叉树 [3,9,20,null,null,15,7], TreeNode treeN原创 2021-04-13 11:23:20 · 78 阅读 · 0 评论 -
【leetcode88】合并两个有序数组
一.问题描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]二.示例代码原创 2021-04-13 00:01:31 · 75 阅读 · 0 评论 -
【leetcode69】x的平方根
一.问题描述实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,二.示例代码public static void main(String[] args) { xSqrts(9); } public static int xSqrts(int x) {原创 2021-04-12 20:18:27 · 65 阅读 · 0 评论