Loading

摘要: 题目描述 分析 出题人肯定是要尽量避免太直接的模版套用 像这题一样,挖了很多坑。 首先是题目很难让人第一时间联想到01背包 这道题换一种描述方法就是找到一个子集,使子集的元素值总和刚好等于原集合之和的一半。 也就是说是一个背包容量为sum/2的01背包问题 另外,化解为这样之后你又会发现和写的和前面 阅读全文
posted @ 2024-03-14 20:39 SaTsuki26681534 阅读(40) 评论(0) 推荐(0)
摘要: 题目描述 思路 这道题并不难,常规的动态规划思路,递推公式也并不难想。 但是贴这题的目的是比较一下题解和我的代码在具体实现上的区别; 代码随想录: class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& o 阅读全文
posted @ 2024-03-12 17:13 SaTsuki26681534 阅读(30) 评论(0) 推荐(0)
摘要: 问题描述 思路 这个递推公式并不难,n阶台阶的走法数目即为n-1阶的走法数目(再走一节就到了)加上n-2阶的走法数目。 当看到部分测试样例WA,而且都是靠后的测试样例而不是随机分散,那么有很大几率是数据类型存储有问题,存不了太大的数,而不是递推公式的问题。 想这题一样,当输入的N为500时,结果为: 阅读全文
posted @ 2024-03-11 23:14 SaTsuki26681534 阅读(35) 评论(0) 推荐(0)
摘要: 题目描述 动态规划思路 动态规划中重要的是数组,而不是递归,这是它和回溯的区别。 理解清楚“后续的状态建立在前面的状态之上”是什么意思。 动态规划的过程一般是循环加数组实现的。 本体代码如下: #include<bits/stdc++.h> using namespace std; int fib( 阅读全文
posted @ 2024-03-11 20:24 SaTsuki26681534 阅读(27) 评论(0) 推荐(0)
摘要: 题目描述 贪心算法在构思的时候一般按以下这些步骤来, 1,明确全局最优解, 2.构造一种取得局部最优解的方法,要根据问题具体分析 3.提出反例,就是说尽量想想有没有一些一些情况下,通过局部最优解得不到全局最优解,如果想不到反例的话,则这个贪心策略就是有效的 问题的关键就在于如何找到一种合适的局部最优 阅读全文
posted @ 2024-03-10 15:44 SaTsuki26681534 阅读(33) 评论(0) 推荐(0)
摘要: 题目描述 按理说思路是很简单的,用两个指针向前遍历,符合摆动序列的话就记录长度,不符合的话就让快指针向前移动一格跳过。 但是在写的时候会出很多奇奇怪怪的错,总会卡在某些特殊的样例上,细节控制不好。 比如出现这种情况。 感觉贪心只是很模糊的一种思路,很难用一个统一的模版处理,不同问题之间的细节差别太大 阅读全文
posted @ 2024-03-10 14:19 SaTsuki26681534 阅读(21) 评论(0) 推荐(0)
摘要: ![image](https://img2024.cnblogs.com/blog/3213233/202403/3213233-20240309213321300-1838182679.png) 阅读全文
posted @ 2024-03-09 21:33 SaTsuki26681534 阅读(23) 评论(0) 推荐(0)
摘要: 题目描述 class Solution { public: vector<vector<int>> res; vector<int> path; void backtrace(vector<int>& nums, int used[]){ if(path.size() == nums.size()) 阅读全文
posted @ 2024-03-09 17:40 SaTsuki26681534 阅读(24) 评论(0) 推荐(0)
摘要: 问题描述 排列问题的难点在于排列要求有序,并且在写的时候发现,如何在选择后面的元素后回过头去选择前面的元素,这是很难处理的,在前面的组合问题中,我们都是用startindex来处理,而在这里就行不通了。 容易想到的一种解决方法就是另外设置一个与nums长度相同的used数组来记录元素的遍历情况,也很 阅读全文
posted @ 2024-03-09 16:52 SaTsuki26681534 阅读(32) 评论(0) 推荐(0)
摘要: 题目 代码如下: class Solution { public: vector<vector<int>> res; vector<int> path; bool occured(vector<int>& nums, int key, int startindex){ for(int i = sta 阅读全文
posted @ 2024-03-09 16:20 SaTsuki26681534 阅读(28) 评论(0) 推荐(0)