摘要: 非递减子序列 问题描述 给了一个数组,要求给出其所有长度>=2的非递减子序列。 思路 压入结果的条件是path.size()>=2,回溯过程结束的条件是移动到了边上startIndex>=num.size() 在树中,非递减序列,要求压入的元素必须比之前压入的大:if(path.empty()||n 阅读全文
posted @ 2025-11-29 20:35 FAfa_C++ 阅读(46) 评论(1) 推荐(0)
摘要: 可达路径 问题描述 给定有N个节点的有向无环图,节点编号从1到n,返回从1到n的所有路径。 输入: 第一行输入两个整数,分别表示节点个数和边的个数 以后m行每行给出从节点s到t的一条路径 N M s1 t1 s2 t2 ...... sm tm 输出:每行输出一条路径 思路 图的存储 1.邻接表 v 阅读全文
posted @ 2025-12-25 15:31 FAfa_C++ 阅读(1) 评论(0) 推荐(0)
摘要: 接雨水 原始思路 形成凹槽的条件是value[l]<value[i]<value[r],能接到的雨水是比较大的值矩形减去这之间的值和。 暴力解法 思路:通过左边的最高柱子和右边的最高柱子的小值确定当前位置可承接的雨水。 class Solution { public: int trap(vector 阅读全文
posted @ 2025-12-24 16:13 FAfa_C++ 阅读(3) 评论(0) 推荐(0)
摘要: 回文子串数 问题理解 找出给定字符串的回文子串数。 class Solution { public: int countSubstrings(string s) { vector<vector<bool>> dp(s.size(), vector<bool>(s.size(), false)); i 阅读全文
posted @ 2025-12-23 12:42 FAfa_C++ 阅读(3) 评论(0) 推荐(0)
摘要: 每日温度 问题理解 给定包含一个时间序列每日温度的整数数组,返回一个数组,数组第i位代表之后会有几天的温度高于当前。 思路: 暴力解法时间复杂度:m*2; 单调栈思路实现: class Solution { public: vector<int> dailyTemperatures(vector<i 阅读全文
posted @ 2025-12-23 12:42 FAfa_C++ 阅读(3) 评论(0) 推荐(0)
摘要: 最大子数组和 问题描述 返回给定数组中的最大子数组和。 思路 用贪心会超时。 动态规划的思路 具体实现 class Solution { public: int maxSubArray(vector<int>& nums) { if (nums.size()==0) return 0; vector 阅读全文
posted @ 2025-12-21 22:26 FAfa_C++ 阅读(3) 评论(0) 推荐(0)
摘要: 最长公共子序列 题目理解 返回给定两个字符串的最长公共子序列的长度。 思路 用动态规划的思路: 1.DP数组代表两个字符串的最长公共子序列的长度; 2.递推公式:DP[i][j]=DP[i-1][j-1]+1 3.初始化:DP[0][0]=DP[0][j]=DP[i][0]=0 4.遍历顺序:从前往 阅读全文
posted @ 2025-12-19 23:14 FAfa_C++ 阅读(4) 评论(0) 推荐(0)
摘要: 最长递增子序列问题 问题理解 返回给定整数数组中最长严格递增子序列的长度。 思路 原始:在左域找到最小,在右边找最小比它大的,更新左域,在右边找最小比它大的。 如果用动态规划的思路:当前状态与上一个状态的关系来看,当前状态可以是两种状态: (1)保留: 比其前一个元素大; (2)不保留: 比其前一个 阅读全文
posted @ 2025-12-18 16:27 FAfa_C++ 阅读(6) 评论(0) 推荐(0)
摘要: 买卖股票的最佳时机3 问题描述 给定i天内的股票走势,求在i天内进行两次交易所能获取的最大利润。 思路 1.给出差值数组,求连续正值的最大和和次大和。但是在下面这个例子中: [3, 1, 4, 2, 6, 1, 3, 2, 5] 差值数组是 [-2,3,-2,4,-5,2,-1,3] 实际收益可以达 阅读全文
posted @ 2025-12-17 19:25 FAfa_C++ 阅读(6) 评论(0) 推荐(0)
摘要: 买卖股票1 给定时间序列中一次买入 给定一个股票i天内的价格走势。 暴力解法 class Solution { public: int maxProfit(vector<int>& prices) { int result=0; for (int i=0;i<prices.size();i++){ 阅读全文
posted @ 2025-12-16 22:39 FAfa_C++ 阅读(5) 评论(0) 推荐(0)
摘要: 携带研究材料 题目 限制条件是背包的空间,目标是实现价值最大。输出是最大价值。研究材料的种类是含有映射关系数组的长度。 初始思路 1.找到比行李箱空间小的所有的材料;这是一个含有映射关系的数组 2.对该数组做空间小于给定空间的所有组合,并记录价值总和;这是个组合问题 3.找出价值最大的组合。 组合问 阅读全文
posted @ 2025-12-15 18:00 FAfa_C++ 阅读(4) 评论(0) 推荐(0)