摘要: 只需要使用map<string,int>即可。 对于新输入的string,通过map.find或者map.count判断是否在map中,若在,让key++,否则设置key=1 注意map的插入操作 //重复局面 //试统计每个局面分别是第几次出现。 #include<iostream> #inclu 阅读全文
posted @ 2024-01-11 23:34 不是孩子了 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 动态规划问题 问题划分为n个小问题 若偷第n家,则偷的最大金额为前n-2家的最大金额加上第n家的金额 若不偷第n家,则偷的最大金额为前n-1家的最大金额 即dp[i] = max(dp[i-2]+num[i], dp[i-1]) 其中dp[0]表示只有一间房屋,则dp[0] = num[0] dp[ 阅读全文
posted @ 2024-01-11 18:41 不是孩子了 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 动态规划问题。 若位于边界,则值为1。否则,f(i,j)=f(i-1,j) + f(i-1,j-1); //杨辉三角 #include<iostream> #include<string> #include<vector> using namespace std; vector<vector<int 阅读全文
posted @ 2024-01-11 18:02 不是孩子了 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 动态规划问题:通过把原问题分解成相对简单的子问题的方式来解决复杂问题的方法,体现了以空间换时间的算法思想,这也是其与分治法最大的区别。 动态规划解题思路和方法:求解动态规划问题的思路是定义状态并写出状态转移方程,然后可以采用自顶向下的递归+备忘录方法或者自底向上的填写状态转移表方法。 爬楼梯问题,初 阅读全文
posted @ 2024-01-11 17:49 不是孩子了 阅读(9) 评论(0) 推荐(0) 编辑