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