程序存储问题
题目:设有 n 个程序 { 1 , 2 , 3 , … , n } 要存放在长度为 L 的磁带上。程序i存放在磁带上的长度是 li , 1 ≤ i ≤ n 。要求确定这 n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。
输入数据中,第一行是 2 个正整数,分别表示程序文件个数和磁带长度L。接下来的 1 行中,有 n 个正整数,表示程序存放在磁带上的长...
分类:
其他好文 时间:
2014-06-27 07:29:45
阅读次数:
151
maxSubSum分别是最大子序列和的4中java算法实现。
第一种算法运行时间为O(N^3),第二种算法运行时间为O(N^2),第三种算法运行时间为O(nlogn),第四种算法运行时间为线性N
测试
public class Test {
public static void main(String[] args) {
int[] a = {-2, 11, -4, 13, -5, -...
分类:
编程语言 时间:
2014-06-24 18:30:19
阅读次数:
284
/**
* 一张图像表示成NxN的矩阵,图像中每个像素是4个字节,写一个函数把图像旋转90度。
* 要求进行原地操作!(即不开辟额外的存储空间)
*
* 可以分两步走。 第一步交换主对角线两侧的对称元素,第二步交换第i行和第n-1-i行,即得到结果
* 原图:
第一步操作后: 第二步操作后:
* 1 2 3 4 1 5 9 13...
分类:
其他好文 时间:
2014-06-22 22:17:06
阅读次数:
152
问题——
给定N个整数(有可能是负数)A1,A2,A3,A4...An,求最大子序列和。
(子序列必须是连续的);比如,对于输入,-2,11,-4,13,-5,-2;这个序列,
答案是20,即从A2到A4。
对于这个问题,你怎么想的呢?下面有四种解法,看看你的解法是不是其中之一。
解法一、穷举
解题思路——
既然是求某一个连续的子序列的最大和,那么我们把所有的子序列的和都加一遍...
分类:
其他好文 时间:
2014-06-22 08:06:08
阅读次数:
237
原题如下,意思就是说无序数组(由0,1,2组成),一遍扫描,把数组整理成0,1,2这样的序列。
Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red,...
分类:
其他好文 时间:
2014-06-18 07:12:43
阅读次数:
174
题目——求两个整数的最大公约数
思路1、穷举算法
public static voidmain(String[] args) throws IOException {
Scannerscanner = new Scanner(System.in);
inta = scanner.nextInt();
intb = scanner.nextInt();
System.out.println(...
分类:
其他好文 时间:
2014-06-07 16:27:13
阅读次数:
253
在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了...
这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。
变换的过...
分类:
其他好文 时间:
2014-06-05 04:38:24
阅读次数:
195
快速排序的原理:每次将序列以一个值为界限分成两组,在将两个序列分别以一个界限分成两组这样一直分下去。
int[] a = {11,222,44,63,84,11,24,53,123,25,98,76,34};
第一步:以34将数组a分成两组
11, 25, 24, 11 34, 63, 44, 53, 123, 222, 98, 76, 84
第二步:以11将...
分类:
编程语言 时间:
2014-06-03 03:07:37
阅读次数:
227
[问题描述]
有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。
移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都...
分类:
其他好文 时间:
2014-06-03 02:20:25
阅读次数:
212
实现当前日历的打印,当前日期用*来表示。
关键得出这个月的第一天是星期几。
基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数+1,m表示月份数,y表示年数。
注意1:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,
例:如果是2004-1-1...
分类:
编程语言 时间:
2014-06-02 23:54:36
阅读次数:
458