
LeetCode之简单题库
文章平均质量分 54
LeetCode题库简单题汇总
文丑颜不良啊
平平无奇的Java开发小白
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetCode-1089: 复写零
leetCode-1089: 复写零原创 2022-06-17 15:51:52 · 175 阅读 · 0 评论 -
leetCode-1051: 高度检查器
leetCode-1051: 高度检查器原创 2022-06-13 09:07:41 · 129 阅读 · 0 评论 -
leetCode-面试题 16.06: 最小差
leetCode-面试题 16.06: 最小差原创 2022-06-09 15:21:09 · 141 阅读 · 0 评论 -
leetCode-929: 独特的电子邮件地址
leetCode-929: 独特的电子邮件地址原创 2022-06-04 21:23:04 · 602 阅读 · 0 评论 -
leetCode-2011: 执行操作后的变量值
leetCode-2011: 执行操作后的变量值原创 2022-05-28 17:54:52 · 221 阅读 · 0 评论 -
leetCode-1021: 删除最外层的括号
leetCode-1021: 删除最外层的括号原创 2022-05-28 11:14:40 · 188 阅读 · 0 评论 -
leetCode-961: 在长度 2N 的数组中找出重复 N 次的元素
leetCode-961: 在长度 2N 的数组中找出重复 N 次的元素原创 2022-05-21 12:24:07 · 305 阅读 · 0 评论 -
leetCode-1: 两数之和
题目描述给定一个整数数组 nums 和一个整数目标值 target ,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,原创 2022-04-04 10:38:34 · 773 阅读 · 0 评论 -
leetCode-136: 只出现一次的数字
题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路:首先,HashMap 是我们解决此类问题最先想到的数据结构,由于其 key 值的唯一性,用来解决此类问题再好不过了。题目中已经说了,只会有一个元素出现一次,其余元素均出现两次,那么方法如下:循环遍历该数组,将数组的每个元素作为 key 值 put 到 HashMap 中,每原创 2022-01-29 16:32:39 · 1027 阅读 · 0 评论 -
leetCode-119: 杨辉三角 II
与 118.杨辉三角_jiaomubai的博客-CSDN博客 这篇文章不同的是,杨辉三角 II 要求输出第 n 行的数据,不在输出前 n 行的值。示例:输入: rowIndex = 3输出: [1,3,3,1]返回第 n 行的杨辉三角值比返回前 n 行的杨辉三角值更适合使用递归来求解,所以此题与 70.爬楼梯_jiaomubai的博客-CSDN博客 类似,我们仍采用多种方法进行求解。根据示例,我们可以看到,实际输出的杨辉三角值其实是输入值 + 1 行的杨辉三角值。在代码中我们使用到了杨辉原创 2021-11-08 17:42:46 · 302 阅读 · 0 评论 -
leetCode-118: 杨辉三角
杨辉三角_百度百科最重要的一点就是杨辉三角的每个数字等于上一行的左右两个数字之和,即第 n 行的第 i 个数等于 第 n - 1 行的第 i - 1 个数 + 第 n - 1 行第 i 个数。如第 3 行的第 2 个数 = 第 2 行的第 1 个数 + 第 2 行的第 2 个数。这个特点也是我们代码中使用的一个公式。题目描述:给定一个非负整数numRows,生成杨辉三角的前numRows行。示例:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1...原创 2021-11-05 14:59:24 · 1220 阅读 · 0 评论 -
leetCode-88: 合并两个有序数组
题目描述:两个按非递减顺序排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。示例1:输入:nums1 = [1, 2, 3, 0, 0, 0], m = 3, nums2 = [2, 5, 6], n = 3输出:[1, 2, 2, 3, 5, 6]解释:需要合并 [1, 2, 3] 和 [2, 5, 6] 。示例2:输入:nums1 = [1], m = 1, nums2 = [], n = 0输出:[1].原创 2021-11-05 13:41:39 · 497 阅读 · 0 评论 -
leetCode-70: 爬楼梯
题目描述:假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶解题方法:简单一看,此题便是典型的斐波那契数列,即当 n >= 3 时,f(n) = f(n - 1) + f(n - 2)。从最开始的递归算法开始,逐步优化,产生了备忘录算法和动态规划算法,代码如下:public class ClimbStairs.原创 2021-09-27 15:05:35 · 175 阅读 · 0 评论 -
leetCode-69: Sqrt(x)
题目描述:给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留整数部分,小数部分将被舍去 。示例:输入:x = 8输出:2解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解题方法:二分法。直接先上代码:public class MySqrt { public static int mySqrt(int x) { if (x < 2) { return原创 2021-09-27 14:45:37 · 318 阅读 · 0 评论 -
leetCode-67: 二进制求和
题目描述:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例:输入: a = "1010", b = "1011"输出: "10101"解题方法:这道题与 LeetCode 题库中第 66 题不同的一点是每位数字相加,第 66 题只是最后一位数字相加,那么我们就不需要去额外处理最后一位数字了,直接全部在循环中处理就好。基本思路其实和第 66 题类似。先将传入的两个字符串转换为数组 charArray1[] 和 charArray2[],...原创 2021-09-26 15:05:32 · 242 阅读 · 0 评论 -
leetCode-66: 加1
题目描述:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。解题方法1:首先想到的就是先将给定数组转换成 String 字符串,再将 String 字符串转换成整数,然后给这个整数加 1,之后将这个整数的每一位数字转按照顺序赋值到数组的每一位即可。原创 2021-09-24 14:01:48 · 131 阅读 · 0 评论 -
leetCode-58: 最后一个单词的长度
题目描述:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。示例:输入:s = " fly me to the moon "输出:4解题方法:这道题相对简单,首先去掉字符串 s 末尾的空格,声明一个临时变量 result 来记录单词的长度,然后从后往前遍历 s,如果不是空格,则 result ++,遇到空格,直接 return 即可。题目中已经说明 s 仅由字母和空格组成,原创 2021-09-24 09:39:52 · 212 阅读 · 0 评论 -
leetCode-53: 最大子序和
题目描述:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。解题方法1:暴力解题。双层循环,遍历数组,第一层循环就是设置开始循环的位置,第二层循环开始遍历寻找最大和。此方法时间复杂度为 O(n^2),空间复杂度 O(1)。public static int maxSubArray1(int[...原创 2021-09-23 14:41:39 · 190 阅读 · 0 评论 -
leetCode-35: 搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例1:输入: nums = [1,3,5,6], target = 5输出: 2提示:nums 为无重复元素的升序排列数组。解题1:暴力解法:直接遍历数组,与 target 进行比较,需要注意的是,如果 target 比数组中的某个元素大,则继续循环,如果等于或者小于某个元素,则直接返回该元素的下原创 2021-09-14 16:41:26 · 290 阅读 · 0 评论 -
leetCode-28: 实现 strStr()
题目描述:实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例1:输入:hays.原创 2021-09-13 17:47:39 · 250 阅读 · 0 评论 -
leetCode-27: 移除元素
题目描述:给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作原创 2021-09-13 14:21:35 · 128 阅读 · 0 评论 -
leetCode-26: 删除有序数组中的重复项
题目描述:给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组,并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDuplic原创 2021-09-13 11:33:45 · 196 阅读 · 0 评论 -
leetCode-21: 合并两个有序链表
题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]解题方法:按照题目中的要求,我们知道待合并的两个链表都是升序有序的,所以我们就不需要考虑其他的特殊情况了。在此以 {1, 2, 3} 和 {2, 3, 4} 分别生成两个升序有序的链表来进行合并,代码如下:public class ListNode { /**原创 2021-09-10 14:49:41 · 900 阅读 · 0 评论 -
leetCode-20: 有效的括号
题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例1:输入:s = "()[]{}"输出:true示例2:输入:s = "([)]"输出:false解题:首先可以考虑使用 Map 加 Stack 的组合来解决。将大中小括号以 key-value 值的形式存储于 map 中,左括号为 key,右括号为 va...原创 2021-09-08 15:23:47 · 116 阅读 · 0 评论 -
leetCode-14: 最长公共前缀
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入:strs = ["flower","flow","flight"]输出:"fl"示例2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。解题思路:当数组的长度大于1时,我们先拿到第一个和第二个元素的相同的前缀 prefix,此 prefix 也是一个字符串,然后再去下一个元素中匹配,看是否能够匹配到该字符.原创 2021-09-08 12:23:07 · 236 阅读 · 0 评论 -
leetCode-13: 罗马数字转整数
题目描述:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + ...原创 2021-09-08 11:19:45 · 209 阅读 · 0 评论 -
leetCode-9: 回文数
题目描述:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例1:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例2:输入:x = 121输出:true解题1:将输入的 x 转换为数组,之后去首尾比较,相同则 true,不同则 false。原创 2021-09-08 09:49:40 · 112 阅读 · 0 评论 -
leetCode-7: 整数反转
题目描述:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例1:输入:x = 123输出:321示例2:输入:x = -123输出:-321示例3:输入:x = 120输出:21解题思路1:使用 Java 提供的 String 和 Integer 的一些方法,通过转换成字符串之后再处理..原创 2021-09-06 15:11:04 · 190 阅读 · 0 评论 -
leetCode-1: 两数之和
题目描述:给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。解题思路1:简单粗暴的方法:双层循环,时间复杂度是 O(n.原创 2021-09-02 17:04:03 · 99 阅读 · 0 评论