LeetCode
文章平均质量分 62
LeetCode每日一道
书启秋枫
手痒了,写代码!
展开
-
【1】两数之和【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,2,4],...原创 2022-03-24 09:41:55 · 183 阅读 · 0 评论 -
【2】两数相加 【LeetCode】
1.题目描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9...原创 2022-04-04 20:01:06 · 184 阅读 · 0 评论 -
【3】无重复字符的最长子串 【LeetCode】
1.题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案..原创 2022-04-14 15:29:33 · 204 阅读 · 0 评论 -
【9】回文数 【LeetCode】
1.题目描述给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121是回文,而123不是。 示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它...原创 2022-04-02 18:59:37 · 220 阅读 · 0 评论 -
【13】罗马数字转整数【LeetCode】
1.题目描述罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M1000例如, 罗马数字2写做II,即为两个并列的 1 。12写做XII,即为X+II。27写做XXVII...原创 2022-03-25 20:30:36 · 186 阅读 · 0 评论 -
【14】最长公共前缀【LeetCode】
1.题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示: 1 <= strs.length <= 200 0 <= strs[i].length <= 200 strs[i]..原创 2022-03-29 20:01:44 · 136 阅读 · 0 评论 -
【20】有效的括号 【LeetCode】
1.题目描述给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:tru...原创 2022-03-29 20:03:40 · 507 阅读 · 0 评论 -
【21】合并两个有序链表 【LeetCode】
1.题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示: 两个链表的节点数目范围是[0, 50] -100 <= Node.val <= 100 l...转载 2022-04-02 19:49:28 · 1245 阅读 · 0 评论 -
【27】移除元素【LeetCode】
1.题目描述给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有k个元素,那么nums的前k个元素应该保存最终结果。将最终结果插入nums的前k个位置后返回k。不要使用额外的空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。...原创 2022-03-29 20:09:43 · 1350 阅读 · 0 评论 -
【28】实现 strStr()【LeetCode】
1.题目描述实现strStr()函数。给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回-1。说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回 0 。这与 C 语言的strstr()以及 Java 的indexOf()定义相符。示例 1:输入:ha...原创 2022-04-02 20:44:20 · 211 阅读 · 0 评论 -
【35】搜索插入位置【LeetCode】
思路分析在有序数组中查找,可以使用「二分查找」。根据「题意分析」中对示例的描述:情况 1:如果当前mid看到的数值严格小于target,那么mid以及mid左边的所有元素就一定不是「插入元素的位置」,因此下一轮搜索区间是[mid + 1..right],下一轮把left移动到mid + 1位置,因此设置left = mid + 1;情况 2:否则,如果mid看到的数值大于等于target,那么mid可能是「插入元素的位置」,mid的右边一定不存在「插入元素的原创 2022-04-03 18:14:39 · 664 阅读 · 0 评论 -
【51】N 皇后【LeetCode】
1.题目描述n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个不同的n 皇后问题的棋子放置方案,该方案中'Q'和'.'分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。...原创 2022-03-30 19:08:58 · 263 阅读 · 0 评论 -
【53】最大子数组和【LeetCode】
1.题目描述给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23提示: 1 <= nums.length <= 105...原创 2022-04-05 23:44:29 · 1710 阅读 · 0 评论 -
【58】最后一个单词的长度【LeetCode】
1.题目描述给你一个字符串s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:5解释:最后一个单词是“World”,长度为5。示例 2:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。示例 3:输入:s = "luffy is st...原创 2022-04-22 22:39:22 · 138 阅读 · 4 评论 -
【66】加一【LeetCode】
1.题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提...原创 2022-04-23 20:56:46 · 264 阅读 · 10 评论 -
【70】爬楼梯【LeetCode】
1.题目描述假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶提示: 1 <= n <= 45 2.核心代码...原创 2022-04-06 12:44:33 · 487 阅读 · 0 评论 -
【89】格雷编码【LeetCode】
1.题目描述n 位格雷码序列是一个由2n个整数组成的序列,其中: 每个整数都在范围[0, 2n- 1]内(含0和2n- 1) 第一个整数是0 一个整数在序列中出现不超过一次 每对相邻整数的二进制表示恰好一位不同,且 第一个和最后一个整数的二进制表示恰好一位不同 给你一个整数n,返回任一有效的n 位格雷码序列。示例 1:输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制...原创 2022-04-07 16:10:02 · 1921 阅读 · 1 评论 -
【94】二叉树的中序遍历 【LeetCode】
1.题目描述给定一个二叉树的根节点root,返回它的中序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]提示: 树中节点数目在范围[0, 100]内 -100 <= Node.val <= 100 进阶:递归算法很简单,你可以通过迭代算法完成吗?2.核心代码class So...原创 2022-04-18 16:25:03 · 203 阅读 · 1 评论 -
【461】汉明距离 【LeetCode】
1.题目描述两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给你两个整数x和y,计算并返回它们之间的汉明距离。示例 1:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。示例 2:输入:x = 3, y = 1输出:1提示: 0 <=x, y <= 231- 1 2.核心代码方法一:内置位计数功能...原创 2022-04-15 08:56:05 · 507 阅读 · 0 评论 -
【剑指 Offer 40】最小的k个数 【LeetCode】
1.题目描述输入整数数组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 <= 10000 0 <= arr[i]<= 10000 2.核心代码...原创 2022-04-14 14:17:45 · 988 阅读 · 0 评论