理解算法备忘
文章平均质量分 67
Kaiattrib
我不是一个程序员
展开
-
整数串问题
问题:有一个规律的整数串,按1~n重复排序。例如112123123412345123456.....输入一个整数N,输出这个位置的整数分析:不适合用数组去做。计算总的数宽度,先确定N这个数的最大n,再在n里面去找,输出。代码:#include using namespace std;int GetLen(int X) {//求整数的宽度 int原创 2016-07-25 18:20:45 · 538 阅读 · 0 评论 -
POJ1363出栈入栈匹配问题
参考POJ1363简要分析:一个序列需满足从小到大入栈,可随时出栈入栈。给出一个参考序列,是否存在按参考序列出栈的情况。首先输入参考序列到数组,按1到N依次进栈,在进栈的过程中,如果等于参考序列当前的数,出栈,参考序列后移一位,如果还相等,继续出栈和后移。如果不等,则入栈。如果用栈,可以判断最后栈是否为空。用数组模拟,模拟计数出栈的个数。如果弹出个数相等,匹配成功。下面用数转载 2016-07-14 22:58:05 · 560 阅读 · 0 评论 -
活动安排问题二
问题有若干个活动,第i个开始时间和结束时间是(S,E),活动之间不能交叠,要把活动都安排完,至少需要几个教室?分析因为要把所有活动都安排完,活动先按开始时间排序,第一个活动先开一个教室,如果下一个活动的开始时间大于等于上一个活动的结束时间,这个活动并入上一个教室,反之新开一个教室,应该比完所有的教室。算法先定义一个结构体,存放所有活动的时刻。定义一个数组存放每个原创 2016-07-12 22:31:13 · 1323 阅读 · 0 评论 -
独木舟问题
问题n个人,已知每个人体重,独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?分析先排序,如果最重的人和最最轻的人如果可以共一条船就共用。不能共一条船,那么最重的那个人必须单独一条船。剩下的同样考虑。算法排序,下标i,j从前面和后面向中间移位。最后只有2种情况,原创 2016-07-15 00:10:43 · 521 阅读 · 0 评论 -
最大连续子序列和
求最大连续子序列和分析:用一个数组存入输入的数字。用一个变量temp从0开始往后加,存放累计的和,用SUM变量存放出现过的最大和。当temp遇到负数会减小,但不能初始化为0重新累计,因为后面还有可能出现正数,和会比前面SUM大的情况。只有当temp遇到负数减到小于0时,temp初始化为0重新开始加。还有一种全是负数的情况,输出一个最大的负数。代码:#in原创 2016-07-15 21:48:25 · 270 阅读 · 0 评论