一、分治法 将数组分为左右两部分,那么最大子数组存在三种可能。 位于左边的子数组 位于右边的子数组 为左子数组的最大后缀与右子数组的最大前缀之和 二、动态规划 如果当前最大数组和为负数,那么加上下一个数的和必然小于下一个的本身。所以当最大数组和为负数时,直接舍弃。 其状态转移方程为sum[i] = ...
分类:
编程语言 时间:
2018-05-11 12:52:59
阅读次数:
215
1.给定一个N*2的二位数组,看作是一个个二元组,例如[[a1,b1],[a2,b2],[a3],[b3]],规定:一个如果想把二元组甲放在二元组乙上,甲中的a值必须大于已中的a值,甲中的b值必须大于乙中的b值。如果在二维数组中随意选择二元组,请问二元组最多可以放在几层? 例如:[[5,4],[6, ...
分类:
编程语言 时间:
2018-05-01 20:16:27
阅读次数:
170
题意是给出两个字符串,求出最长公共子序列(LSC问题)。dp[i][j]表示的是字符串a从0到i与字符串b从0到j中最长公共自序列的长度。于是dp[i][j]=dp[i-1][j-1]+1(a[i]==b[j])或max(dp[i-1][j],ap[i][j-1])(a[i]=b[j])参考文章:算法笔记p434#include<cstdio>#include<algorithm
分类:
其他好文 时间:
2018-04-29 14:31:18
阅读次数:
133
求的是最长上升子序列的和。数组dp[i]表示以i结尾的最长上升子序列的和,因为开始每个数字都可以单独的成为一个子序列,所以初始化dp[i]用num[i]。参考文章:算法笔记p433#include<algorithm>#include<cstdio>usingnamespacestd;constintlen=1001;intdp[len],num[len];intmain(
分类:
其他好文 时间:
2018-04-29 14:29:06
阅读次数:
120
1.1数据结构: 数据结构实计算机中对数据的一种存储和组织的方式,同时也泛指相互之间存在一种或多种特定关系的数据的集合。 1.1.1什么是数据结构 到现在为止,计算机技术领域中还没有一个统一的数据结构的定义。以下是引用的部分解释: 名词定义 名词定义 数据结构是指相互之间存在着一种或多种关系的数据元 ...
分类:
编程语言 时间:
2018-04-23 15:50:27
阅读次数:
188
算法笔记——【动态规划】电路布线问题 原创 2013年03月14日 09:18:27 标签: 电路布线 / 算法笔记 / 动态规划 / 最优子结构 12785 原创 2013年03月14日 09:18:27 标签: 电路布线 / 算法笔记 / 动态规划 / 最优子结构 12785 1、问题描述: 在 ...
分类:
其他好文 时间:
2018-04-18 18:56:54
阅读次数:
202
这几天在研究CRC32的计算过程,看了CRC算法的原理,也看了不少通过移位法实现的代码,但是算出的结果跟校验工具算的不一致。 折腾了好长时间,终于找到一个手工计算CRC32的文章,再对照IEEE 802.3标准的CRC计算过程,才算把CRC32的计算搞定。 这里把计算过程的要点记录一下: 1) CR ...
分类:
编程语言 时间:
2018-04-15 18:47:43
阅读次数:
230
一、基础篇 C++标准模板库(STL) 1.vector 可以理解为“变长数组” .size() 获取vector中元素的个数,返回unsigned类型 .clear() .push_back(x) 在vector后面添加一个元素x .pop_back() 删除vector的尾元素 .insert( ...
分类:
编程语言 时间:
2018-03-21 21:13:11
阅读次数:
190
树专题 1.DFS模板 2.BFS模板 3.二叉树的动态实现(指针) 4.二叉树的静态实现 5.树的遍历、树的静态写法 ? 树:即子结点个数不确定且子结点没有先后次序的树。推荐使用静态写法 6.知道二叉树的先序和中序遍历,建立该二叉树 7.二叉树查找(BST) 8.平衡二叉树 AVL ...
分类:
编程语言 时间:
2018-03-21 14:08:58
阅读次数:
236
1.时间处理 PAT中有些问题把时间转换为以 s 为单位可以简化很多操作。 2.日期处理 3.进制转换 4.最大公约数、最小公倍数 5.分数的输入形式 6.判断是否为素数(Prime) N不会被除自己以外的大于根号N的整数整除(减少运算复杂度) 7.C++ sort()排序函数 8.字符串Hash ...
分类:
编程语言 时间:
2018-03-21 14:07:39
阅读次数:
230