题目:有40个培养皿,每个培养皿中有一个数字(0-9)。最开始时20号中数字为1,其余为0。
每组输入有一个DNA programs(10个数字构成的序列),它决定每个培养皿下个时间的数字。
设培养皿i中的数字为F(i),则下次其中的数字为DNA(F(i-1)+F(i)+F(i+1))
{即,编号为F(i-1)+F(i)...
分类:
其他好文 时间:
2014-06-15 19:21:09
阅读次数:
249
这道题网上很多人都会说容易,水题之类的话,不过我看了下说这样的话的人的程序,可以说他们的程序都不及格!
为什么呢?因为他们的程序都是使用简单的二次排序水过(大概你能搜索到的多是这样的程序),那样自然可以说不及格了。
因为本题真正的目的是求前k个最大数的问题,这就需要活用快速排序。
求前k个最大数的思路:
1 选取一个数位轴,然后把大于这个数的数放到数列前面,小于这个数的数放到数列后面
2 如果前面的数的数量大于k,那么可以去掉后面的数,递归在前面的数查找前k个最大数
3 如果前面的数的数量小于k,那么截去前...
分类:
其他好文 时间:
2014-06-15 18:04:07
阅读次数:
181
在Python中本来不存在所谓大整数溢出问题。但是,我看到了一个叫做阿拉伯乘法的方法,是一个古老的计算两个数相乘的问题。于是用它来计算两个大整数相乘,感觉还不错。...
分类:
其他好文 时间:
2014-06-15 17:46:10
阅读次数:
266
旋转数组中的查找。[1, 2, 3, 4, 5, 6]的一个旋转数组为[4, 5, 6, 1, 2, 3]。在旋转数组中寻找一个数。
最直接的方法,一次遍历,时间复杂度O(n)。但是既然是一个部分有序的数组,那么对于有序的部分我们可以想方法用二分查找。这个效率可以提高。
代码:
.......
分类:
其他好文 时间:
2014-06-15 17:33:21
阅读次数:
195
输入N个数,输出所有可能的排列组合
一行代码一行泪。。。手都被发热的笔记本烤的不舒服了。。。。6个多小时过去鸟。。。终于粗来鸟。。。。
昨天同学问到一个排列组合的问题,本身不会很难,原题是固定输入4个数字,例如1 2 3 4,输出所有可能的排列组合
暴力的话应该不难的。代码+debug,半个小时。
如果是输入N个数字呢?
先说简单的暴力方法,如...
分类:
其他好文 时间:
2014-06-15 17:09:02
阅读次数:
282
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 8–2. 循环. 编写一个程序, 让用户输入三个数字: (f)rom, (t)o, 和 (i)ncrement .
# 以 i为步长, 从 f 计数到 t , 包括 f 和 t . 例如, 如果输入的是 f == 2,
# t == 26, i == 4 , 程序将输出 2, 6, 10,...
分类:
编程语言 时间:
2014-06-15 16:35:25
阅读次数:
444
又是一题快速排序的题目,活用快排求某个位置的数。
这次完善一下自己的基础,把快排代码规范化和增加一个random算法,进一步确保不会出现最坏情况。
思路和前一道题差不多,不过是求第k个数了,这里的第k个数是中序数。
花了点时候整理下代码,果然变得十分工整了。
#include
#include
#include
#include
using namespace std;
const...
分类:
其他好文 时间:
2014-06-15 16:21:17
阅读次数:
214
题目
Given a sorted array of integers, find the starting and ending position of a given target value.
解题思路:
查找一个数出现的范围,给一个排好序的数组和一个数,找出这个数在数组中出现的范围。
这个题直接使用一次遍历就可以得到结果,这样的时间复杂度为O(n)。但是对于有序数组我们一般可以使用二分查找可以得到更好的O(logn)的时间复杂度。我们可以使用二分查找找到这个数第一次出现的位置和这个数最后一次出现的位...
分类:
其他好文 时间:
2014-06-15 16:19:16
阅读次数:
237
http://poj.org/problem?id=3150
大致题意:给出n个数,问经过K次变换每个位置上的数变为多少。第i位置上的数经过一次变换定义为所有满足 min( abs(i-j),n-abs(i-j) )
思路:
我们先将上述定义表示为矩阵
B =
1 1 0 0 1
1 1 1 0 0
0 1 1 1 0
0 0 1 1 1
1 0 0 1 1...
分类:
其他好文 时间:
2014-06-15 16:14:14
阅读次数:
169
题意:裸的多重背包,水题。
解法:和完全背包一样,只不过加一个数组,记录着每个物品用过的次数,多于存储量时就pass不更新。
还有一种方法是将每个物品用二进制压缩处理,第一个代码比较简单;
代码:/******************************************************
* author:xiefubao
*******...
分类:
其他好文 时间:
2014-06-15 09:14:06
阅读次数:
223