
LeetCode
这个人很菜
种下一颗草莓
这个人很菜。
展开
-
LeetCode 208. 实现 Trie (前缀树)
题目描述实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"); // 返回 truetrie.insert("app"); trie.search("app原创 2021-02-27 19:29:55 · 133 阅读 · 1 评论 -
洛谷P2404自然数的拆分问题 P1157组合的输出
问题描述任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。现在给你一个自然数n,要求你求出n的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。输入输出样例Sample Input7Sample Output1+1+1+1+1+1+11+1+1+1+1+21+1+1+1+31+1+1+2+21+1+1+41+1+2+31+1+51+2+2+21+2+41+3+31+62+2+32+53+原创 2020-10-07 21:33:17 · 423 阅读 · 0 评论 -
LeetCode78、46 dfs深搜求解子集、全排列问题 LeetCode 90、47 子集2 全排列2
LeetCode 78问题描述:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。回溯法中的子集树问题,相当于一个完全n叉树,此题中相当于完全二叉树,共有2(n+1)-1个结点,2n个叶结点,从根节点到叶节点的分支连起来即对应所有的子集。其中假设左子树为1,选中;右子树为0,不选中。void dfs(int dep,vector<int>& nums){ if(dep==n){ int size=track.size();原创 2020-10-04 21:37:11 · 257 阅读 · 0 评论 -
dp——LeetCode5.最长回文子串
问题描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”问题分析对于字符串数组s,用dp[i][j]判断从s[i]到s[j]是否是回文串,如果是,dp[i][j]为1,如果不是回文串,dp[i][j]为0。则有动态方程dp[i][j]=dp[i+1][j-1]&&(s[i]==s[j]) ,原创 2020-09-12 16:27:34 · 184 阅读 · 0 评论 -
0-1背包和完全背包问题、LeetCode416题、1049题、494题、322题
0-1背包问题假设N件物品,每件物品重量为w[i],每件物品的价值为v[i],背包重量为C,选择物品装入背包使其在不超过负重的前提下价值最大,每种物品只能用一次。假设dp[i][j]表示在前i件物品,背包重量为j的前提下的最大价值则如果物品可以放入背包,则动态转移方程为 dp[i][j]=max( dp[i-1][j],dp[i-1][j-w[i]]+v[i] ) , j>=w[i]如果物品不能放入背包,dp[i][j]=dp[i-1][j] ,j<w[i]#include <原创 2020-09-09 23:21:06 · 850 阅读 · 0 评论