
Leetcode
春日丶野穹
这个作者很懒,什么都没留下…
展开
-
Leetcode 96.不同的二叉搜索树
思路本问题属于动态规划问题。用f(n)f(n)f(n)表示nnn个数字时,可以组成二叉搜索树的目数。任取iii满足0<i≤n0{\lt}i{\le}n0<i≤n作为根节点,则其左子树有i−1i-1i−1个节点,有子树有n−in-in−i个节点。即分别有f(i−1)f(i-1)f(i−1),f(n−i)f(n-i)f(n−i)种组合。那么iii作为根节点的二叉搜索树的组合共有f(i−1)⋅f(n−i)f(i-1){\cdot}f(n-i)f(i−1)⋅f(n−i)种。这样,我们就得出了递原创 2020-07-15 20:40:02 · 204 阅读 · 0 评论 -
Leetcode无重复字符的最长子串
滑动窗口的思路 使用一个vector和两个指针来维护这个窗口。class Solution {public: int lengthOfLongestSubstring(string s) { int N = s.length(); int left = 0, right = 0; vector<char> result; size_t max = 0; for...原创 2019-05-14 09:25:28 · 169 阅读 · 0 评论 -
LeetCode寻找两个有序数组的中位数
两个指针分别指向两个数组,每次比较后,小的右移。两个数记录当前长度的中位数。class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int i = 0, j = 0; int N1 = nums1.size(...原创 2019-05-14 10:41:05 · 292 阅读 · 0 评论 -
Leetcode 最长回文子串
采用动态规划的方法。使用二维数组dp[i,j]表示字符串从i到j为回文串,则状态转移方程为:dp[i,j]={1,ifdp[i+1,j−1]==1ands[i]==s[j]0,othersdp[i,j] = \begin{cases}1, if dp[i+1,j-1] == 1 and s[i] == s[j]\\0, others\end{cases}dp[i,j]={1,ifd...原创 2019-05-14 11:25:02 · 205 阅读 · 0 评论