摘要:
思路 先把数组排序 先枚举i,再枚举j,确定了i和j的值,在保证$nums[i] + nums[j] + nums[k - 1] >= 0$的条件下,找到k的最小值,之后查看三数相加是否等于0,如果相等,记录答案,如果不等,那就继续枚举i和j 这里的j和k的确定使用的是双指针做法,因为有序,因此每次 阅读全文
摘要:
思路 动态规划 将字符或'.' + '*'当做一个整体进行处理,因此如果下一个位置是*,那就跳过当前位置 当p[j] != '*'时,那就是字符匹配,此时i必须大于0,因为s[i]必须是一个字符才能进行匹配 此时dp[i][j] = dp[i - 1][j - 1] && (s[i] == p[j] 阅读全文
摘要:
思路 - 找规律 找规律题 每一行都是等差数列 样例 输入:s = "PAYPALISHIRING", numRows = 3 输出:"PAHNAPLSIIGYIR" 解释: P A H N A P L S I I G Y I R 第一行和最后一行字符间的距离是2*numRows - 2 中间几行: 阅读全文
摘要:
思路 原问题难以直接递归求解,所以我们先考虑这样一个问题: 在两个有序数组中,长度分别为n、m, 找出第k小数。 如果该问题可以解决,那么第 k = (n+m)/2 小数就是我们要求的中位数. 先从简单情况入手,假设 m,n ≥ k/2,我们先从 nums1 和 nums2 中各取前 k/2 个元素 阅读全文
摘要:
题目地址: https://leetcode.cn/problems/longest-palindromic-substring/ 解法1 - 中心枚举法 思路 有两种回文串 长度为偶数:若中心点坐标为i,左右两坐标起点是i - 1, j + 1 长度为奇数:若中心点坐标为i,左右两坐标起点是i, 阅读全文