题目给你一个字符串 s,找到 s 中最长的回文子串。子串(substring):原始字符串的一个连续子集;子序列(subsequence):原始字符串的一个子集。示例1输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例2输入:s = "a"输出:"a"解题思路动态规划需要有状态和状态转移方程:状态:dp[i][j]dp[i][j]dp[i][j] 表示子串s[i⋯j]s[i\cdots j]s[i⋯j] 是否为回文子串状态转移
难度: 简单题目反转一个单链表。示例输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路使用三个 ListNode,分别是prev,curr,next。curr是当前指针指向的节点,prev是curr的前一个节点,头节点的前一个节点是NULL,next是curr的下一个节点,用于遍历链表。prev curr next NULL 1 -> 2
难度: 困难题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串 s 的,而不是部分字符串。示例1输入:s = "aa" p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例2输入:s = "aab" p = "c*a*b"输出:true解释:因为 '*' 表示零个或多个,这里 'c' 为 0 个, '
难度: 中等题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例1输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2输入: s = ""输出: 0解题思路(滑动窗口)滑动窗⼝的右边界不断的右移,只要没有重复的字符,就持续向右扩⼤窗⼝边界。⼀旦出现了重复字 符,就需要缩⼩左边界,直到重复的字符移出了左边界(使用map可直接将左边界跳转到正确的位置),然后继续移动滑动窗⼝的右边界。以此类推, 每次
难度:简单问题描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。题解(动态规划):初始化最大值为数组第一个数,以解决数组中只有单个数的问题;从第二个数开始遍历数组,如果上一个数大于0,则令 当前位置的数 = 当前位置数的数值 + 上一个数的数值;每次遍历后比较数组当前数值与最大值,并根据结
难度: 困难题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是
难度: 困难题目给你一个字符串 s 、一个字符串 t 。
难度: 中等非常典型的动态规划问题题目一个机器人位于一个 m
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号