上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要: 最长回文子串的问题描述: 下面介绍动态规划的方法,使用动态规划可以达到最优的 O(n2) 复杂度。 令 dp[i][j] 表示 S[i] 至 S[j] 所表示的子串是否是回文子串,是则为 1,不是则为 0。这样根据 S[i] 是否等于 S[j] ,可以把转移情况分为两类: 由此可以写出状态转移方程: 阅读全文
posted @ 2018-02-10 09:51 Just_for_Myself 阅读(14425) 评论(0) 推荐(1) 编辑
摘要: 一、字符串输入 1. 输入单个字符串 可以使用 scanf 函数,以空格为分割输入字符串,代码如下: 2. 输入整行字符串 可以使用 gets 函数,以 '\n' 为分割输入整行字符串,代码如下: 二、字符串处理 1. 字符串拷贝 可以使用 strcpy 函数,代码如下: 注意:1. str1 会覆 阅读全文
posted @ 2018-02-09 19:54 Just_for_Myself 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 简单模拟,详解请查看另一篇博客。 代码如下: 阅读全文
posted @ 2018-02-09 16:34 Just_for_Myself 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 32 位系统下 int 的范围为:-2^31 ~ 2^31 - 1,因此只需将字符串转化为相应的整数然后进行加法运算即可。 代码如下: 阅读全文
posted @ 2018-02-09 16:26 Just_for_Myself 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 遍历矩阵的下三角,判断与对称部分是否相同即可。 代码如下: 阅读全文
posted @ 2018-02-09 16:15 Just_for_Myself 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 关键字顺序:年龄>工号>姓名,从小到大自定义 cmp 函数,然后使用内置的 qsort 函数即可。qsort 的用法详见另一篇博客。 代码如下: 阅读全文
posted @ 2018-02-09 16:07 Just_for_Myself 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 对矩阵的每一行求出最大值以及和,并记录最大值下标,最后将最大值所在位置换成本行元素的和即可。 代码如下: 阅读全文
posted @ 2018-02-09 15:57 Just_for_Myself 阅读(934) 评论(0) 推荐(0) 编辑
摘要: 最长公共子序列的问题描述为: 下面介绍动态规划的做法。 令 dp[i][j] 表示字符串 A 的 i 号位与字符串 B 的 j 号位之前的 LCS 长度(下标从 1 开始),如 dp[4][5] 表示 "sads" 与 “admin" 的 LCS 长度。那么可以根据 A[i] 和 B[j] 的情况, 阅读全文
posted @ 2018-02-09 11:22 Just_for_Myself 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 最长不降子序列是这样一个问题: 下面介绍动态规划的做法。 令 dp[i] 表示以 A[i] 结尾的最长不下降序列长度。这样对 A[i] 来说就会有两种可能: 由此可以写出状态转移方程: dp[i] = max{1, dp[j]+1} (j=1,2,....,i-1&&A[j]<A[i]) 上面的状态 阅读全文
posted @ 2018-02-09 10:27 Just_for_Myself 阅读(1386) 评论(0) 推荐(0) 编辑
摘要: 最大连续子序列和问题如下: 下面介绍动态规划的做法,复杂度为 O(n)。 步骤 1:令状态 dp[i] 表示以 A[i] 作为末尾的连续序列的最大和(这里是说 A[i] 必须作为连续序列的末尾)。 步骤 2:做如下考虑:因为 dp[i] 要求是必须以 A[i] 结尾的连续序列,那么只有两种情况: 对 阅读全文
posted @ 2018-02-09 09:51 Just_for_Myself 阅读(38111) 评论(0) 推荐(3) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页