摘要: 1. 打开文件 函数定义:FILE *fopen(char *pname, char *mode) 函数说明:pname 是文件名,mode 是打开文件的方式( r:只读,w:只写) 返回值:若返回 NULL,则打开失败。 2. 关闭文件 函数定义:int fclose(FILE *stream) 阅读全文
posted @ 2018-02-10 20:13 Just_for_Myself 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 先把前面介绍的动态规划模型列举如下: (1)最大连续子序列和 令 dp[i] 表示以 A[i] 作为结尾的连续序列的最大和。 (2)最长不下降子序列(LIS) 令 dp[i] 表示以 A[i] 作为结尾的最长不下降子序列长度。 (3)最长公共子序列(LCS) 令 dp[i][j] 表示字符串 A 的 阅读全文
posted @ 2018-02-10 19:09 Just_for_Myself 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 遍历字符串前半部分,判断对称部分是否相等即可。 代码如下: 阅读全文
posted @ 2018-02-10 15:45 Just_for_Myself 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 直接输出即可。 代码如下: 阅读全文
posted @ 2018-02-10 15:40 Just_for_Myself 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 可以用动态规划。令 dp[i] 表示 i 阶楼梯有多少种方法,则状态转移方程为: dp[i] = dp[i-2] + dp[i-1], i≥3 边界:dp[1]=1, dp[2]=2。 代码如下: 阅读全文
posted @ 2018-02-10 15:35 Just_for_Myself 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 将大整数输入到字符数组,先按字符串长度排序,若字符串长度相等,进行字符串比较。需自定义 cmp 函数,然后使用 C 内置的 qsort 函数。 代码如下: 阅读全文
posted @ 2018-02-10 15:24 Just_for_Myself 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 题目截图: 思路: 二叉排序树的操作详解请看另一篇博客。 代码如下: 阅读全文
posted @ 2018-02-10 15:13 Just_for_Myself 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 背包问题是一类经典的动态规划问题,本节只介绍两类最简单的背包问题:01 背包问题和完全背包问题。 一、多阶段动态规划问题 有一类动态规划可解的问题,它可以描述成若干个有序的阶段,且每个阶段的状态只和上一阶段的状态有关,一般把这类问题称为多阶段动态规划问题。如下图所示,该问题被分为 5 个阶段,其中状 阅读全文
posted @ 2018-02-10 11:46 Just_for_Myself 阅读(1077) 评论(0) 推荐(0) 编辑
摘要: 最长回文子串的问题描述: 下面介绍动态规划的方法,使用动态规划可以达到最优的 O(n2) 复杂度。 令 dp[i][j] 表示 S[i] 至 S[j] 所表示的子串是否是回文子串,是则为 1,不是则为 0。这样根据 S[i] 是否等于 S[j] ,可以把转移情况分为两类: 由此可以写出状态转移方程: 阅读全文
posted @ 2018-02-10 09:51 Just_for_Myself 阅读(14439) 评论(0) 推荐(1) 编辑