Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65545
  • 博文数量: 115
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-08 19:09
文章分类
文章存档

2015年(115)

我的朋友

发布时间:2015-08-06 16:44:10

求给定数组中的连续子数组的最大乘积。   简单DP,练手。codepad.org已验证 点击(此处)折叠或打开 #include <stdio.h> #include <stdlib.h> #include <memory.h> #define MAX 1000 int getmaxsub(int *input, int size){     if(input == NULL || size == 0) return 0xFFFF;   &nbs......【阅读全文】

阅读(95) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:44:06

今天突然意识到复制书稿这道题目应该是可以用贪心法来做的,几经周折无法证明贪心法的正确性。等改日强大了再来证明。也欢迎高手提供答案。   解法如下,先将M本书分为M组,然后尝试选择连续的两个组合并,要求选择的这两个组合并后的值是所有可能的连续两两合并的值最小的,例如,1,2,3三组, 12合并和23合并显然12合并最小,采取该种合并方式。 如此迭代至K组时即可。   通常思路如下: 证明:(每一步所做的贪心选择最终导致问题的整体最优解)//基本思路:考察一个问题的最优解,证明可修改该最优解,使得其从贪心选择开始,然后用数学归纳法证明每一步都可以通过贪心选择得到最优......【阅读全文】

阅读(319) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:43:56

设计包含min 函数的栈。定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push 以及pop 的时间复杂度都是O(1)。   使用一个栈处理push,pop,额外使用一个栈,用来记录最小值。 a.当向原栈中push数据后,与最小值栈中的栈顶元素比较,如果新值小于等于最小值栈顶,则在最小值栈中push新值;否则不动 b.pop的时候,考虑pop出的值是否等于最小值栈顶元素,如果等于最小栈也pop,否则不动 c.min函数返回最小值栈的栈顶元素   C#实现如下 点击(此处)折叠或打开 public ......【阅读全文】

阅读(91) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:43:51

编写函数DelStr(str1,str2)。其中str1和str2为两个字符串。函数的功能是从str1中删除所有str2字串,结果由str1输出。函数没有返回值。例如,输入str1为“howareyouareGGGare”,str2为“are”,那么调用函数DelStr(str1,str2)后str1为“howyouGGG”   字符串基本功练手代码。codepad.org已验证。 一个比较复杂的字符串函数,从思考到完成25分钟左右。虽然代码写的傻但是一次无bug过。值得撒花,几个月来没有白练。   点击(此处)折叠或打开 #includ......【阅读全文】

阅读(214) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:43:48

排序数组,使奇数在左边,偶数在右边,同时需保持元素相对顺序稳定。 正确解法使用冒泡即可。 代码中额外提供了基于快排的方法。(麻烦且没有必要,仅作思考和练手使用) 排序的本质是依据不同的权重计算方法,按权重进行排序。这里通过对数字奇偶性和它的的下标,计算了每个数字的权重,然后根据权重进行升序排列。 权重计算规则:奇数的权重小于偶数的权重,下标小的权重小于下标大的。 这种思想可用于各种排序的变体。 点击(此处)折叠或打开 #include <stdio.h> #include <stdlib.h> #define SWAP(a,b) (......【阅读全文】

阅读(400) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册