2013年3月23日

摘要: 输入数字n,按顺序打印出从1到最大的n位十进制。输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印出所有数字中最小的一个。大数相加和大数相乘。1、思路: 首先想到的方法必然是确定上限,比如n=3,上限是100。但是当n很大时,就算用long long也有可能溢出,所以考虑将数字转成字符处理。如果用字符来模拟加法操作,过程比较复杂。但是用数字全排列则能很好的解决问题,即各个位置上0~9都出现一遍。在打印的时候要注意,以0开头的字符不能打印出来。Print1ToMax 1 #include <stdio.h> 2 #include <string.h> 3 4 v 阅读全文
posted @ 2013-03-23 17:55 月moon鸟 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 有一个整数数组,求出连续子数组的和的最大值。有一个首尾相连的整数数组,求出连续子数组的和的最大值。在数组中,数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。1、思路: 动态规划思路:用函数f(i)表示以第i个数字结尾的子数组的最大和。当f(i-1)<0时,则以第i个数字结尾的子数组就是第i个数字本身;当f(i-1)>0时,f(i)=f(i-1)+i。虽然我们用递归的方式分析动态规划的问题,但都会基于循环去编码。GreatestSumOfSubArray 1 bool g_InvalidInput = false; 2 3 int FindGreatestSumOfSu 阅读全文
posted @ 2013-03-23 11:06 月moon鸟 阅读(246) 评论(0) 推荐(0) 编辑

导航