LeetCode练习
文章平均质量分 79
战
大唐不良猿
开始,继续
展开
-
第90篇 LeetCode剑指Offer动态规划(七)最长不包含重复字符的子字符串
第90篇 LeetCode剑指Offer动态规划(七)最长不包含重复字符的子字符串1.题目描述2.动态规划的解题步骤2.1.dp[i]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出:原创 2021-12-05 19:25:54 · 364 阅读 · 1 评论 -
第89篇 LeetCode剑指Offer动态规划(六)把数字翻译成字符串
第89篇 LeetCode剑指Offer动态规划(六)把数字翻译成字符串1.题目描述2.动态规划的解题步骤2.1.dp[i]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 122原创 2021-12-05 18:57:40 · 129 阅读 · 0 评论 -
第88篇 LeetCode剑指Offer动态规划(五)礼物的最大值
第88篇 LeetCode剑指Offer动态规划(五)礼物的最大值1.题目描述2.动态规划的解题步骤2.1.dp[i][j]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:原创 2021-12-05 17:59:31 · 139 阅读 · 0 评论 -
第87篇 LeetCode剑指Offer动态规划(四)连续子数组的最大和
第87篇 LeetCode剑指Offer动态规划(四)连续子数组的最大和1.题目描述2.动态规划的解题步骤2.1.dp[i]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大原创 2021-12-05 16:30:02 · 132 阅读 · 0 评论 -
第86篇 LeetCode剑指Offer动态规划(三)股票的最大利润
第86篇 LeetCode剑指Offer动态规划(三)股票的最大利润1.题目描述2.动态规划的解题步骤2.1.dp[i]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 =原创 2021-12-05 15:56:45 · 107 阅读 · 0 评论 -
第85篇 LeetCode剑指Offer动态规划(二)青蛙跳台阶问题
`第85篇 LeetCode剑指Offer动态规划(二)青蛙跳台阶问题1.题目描述2.动态规划的解题步骤2.1.dp[i]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:原创 2021-12-05 15:25:56 · 464 阅读 · 0 评论 -
第84篇 LeetCode剑指Offer动态规划(一)斐波那契数列
第84篇 LeetCode剑指Offer动态规划(一)斐波那契数列1.题目描述2.动态规划的解题步骤2.1.dp[i]的定义2.2.递推式2.3.dp初始化和递归函数出口2.4.递归函数2.5.递归改成迭代2.6.迭代优化3.结语1.题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1原创 2021-12-05 15:07:50 · 692 阅读 · 0 评论 -
第75篇 LeetCode题目练习(八) 8.字符串转整数
第75篇 LeetCode题目练习(八) 8.字符串转整数1.题目描述2.解题思路3.代码4.结语1.题目描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:(1) 读入字符串并丢弃无用的前导空格(2)检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。(3)读入原创 2021-11-16 20:10:28 · 70 阅读 · 0 评论 -
第74篇 LeetCode题目练习(七) 7.整数反转
第74篇 LeetCode题目练习(七) 7.整数反转1.题目描述2.解题思路3.代码4.结语1.题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−2^31 , 2^31 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入原创 2021-11-16 19:41:40 · 1359 阅读 · 0 评论 -
第73篇 LeetCode题目练习(六) 6.Z字形变换
第73篇 LeetCode题目练习(六) 6.Z字形变换1.题目描述2.解题思路3.我的代码4.官方写法5.结语1.题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指原创 2021-11-16 19:17:20 · 1572 阅读 · 0 评论 -
第72篇 LeetCode题目练习(五) 5.最长回文子串
第72篇 LeetCode题目练习(五) 5.最长回文子串1.题目描述2.思路1.题目描述给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/原创 2021-11-15 22:34:18 · 87 阅读 · 0 评论 -
第71篇 LeetCode题目练习(四) 4.寻找两个正序数组的中位数
第71篇 LeetCode题目练习(四) 4.寻找两个正序数组的中位数1.题目描述2.解题思路2.1.中位数确定2.2.半合并2.2.1.数据2.2.1.半合并过程3.代码4.结语1.题目描述给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,原创 2021-11-15 17:38:35 · 730 阅读 · 0 评论 -
第70篇 LeetCode题目练习(三) 3.无重复字符的最长子串
第70篇 LeetCode题目练习(三) 3.无重复字符的最长子串1.题目描述2.解决思路3.伪代码4.代码5.结语1.题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew” 输原创 2021-11-15 16:28:13 · 84 阅读 · 0 评论 -
第69篇 LeetCode题目练习(二) 2.两数相加
第69篇 LeetCode题目练习(二) 2.两数相加1.题目描述2.题解2.1.思路1.题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l原创 2021-11-14 18:00:15 · 65 阅读 · 0 评论 -
第68篇 LeetCode题目练习(一) 1.两数之和
第68篇 LeetCode题目练习(一) 1.两数之和1.题目描述2.暴力解法-双重for循环2.1.思路2.2.算法2.3.代码2.4.改进一-break2.5.改进二-迭代器2.6.改进二-迭代器23.哈希表map4.结语1.题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:原创 2021-11-14 17:28:06 · 96 阅读 · 0 评论