- 浏览: 188509 次
- 性别:
- 来自: 北京
最新评论
-
AgBupt:
lz,我这里显示没有ip6config的命令。。。这个咋整啊
MAC中测试IPv6是否正常以及重启启用方法 -
assertivef:
简单可测试的代码,言简意赅。
Java中WeakHashMap类型使用示例 -
yjc2020:
求第几大的数后还要给出其在原数组中的位置,你这个是不是还要再遍 ...
Algorithm 05 : 给定一个数组,寻找第K大的数 -
liuxbgiant:
上面代码有些问题,可以与QQ:447369396交流……
给定一个整数数组,检测是否存在一个和为零的子数组 -
accesine:
lo0 gif0 stf0 en0 en1 fw0 p2p0楼 ...
MAC中测试IPv6是否正常以及重启启用方法
文章列表
问题:五连击数组[BAIDU]:在任意一个数组当中,若你能找出有五个以及五个以上的连续元素时,我们就称它为五连击数组。但是这种数组并不是视场会有,你的任务就是通过增加最少的元素,使一个数组成为一个五连击数组。
输入要求:每个测试文件包括多个测试案例,每个测试案例包括两行。第一行代表输入的元素个数N,其中0<N<=1000。第二行则包含有N个非负整数,代表数组的元素。
输出要求:对于每一个测试案例输出一行,代表最少添加的元素数,使得数组成为一个五连击数组。
答:代码实现如下:
/* Author:YuHuang Date:2012-01-24 */
#inclu ...
问题:递推数列【BAIDU】:给定a0,a1,以及an=p*a(n-1)+q*a(n-2)中的p,q。这里n>=2。求第k数对10000的模。要求性能尽可能优化。
说明:所给出的程序的输入包括a0,a1,p,q,k,输出第k个数a(k)对10000的模。
答:初看这个题目,第一印象就是无非考考递归程序设计或者线性递推罢了。其实仔细想了想题目要求性能尽可能优化,简单地使用递归或者线性递推的设计显然不能达到要求,在实际编程中也验证了这一点,使用递归的设计方法的时候,当k增加到300左右程序就不动了,效率非常低,使用线性递推的时间复杂度可以达到O(n),但是对于一个大k来说复杂度还是有优化的 ...
问题:Sun同学是考研大军之中的一员,他每天过着三点一线的生活。学校里面有一个公告栏,他每天都看到上面张贴着各种考研海报。Sun同学提出一个问题:公告栏上还有多少空白区域是没有被考研海报粘贴过的呢?请你帮他完成这样一个程序,计算没有张贴过海报的面积。
注意:
公告栏左上角是坐标原点(0,0),公告栏长宽相等。
数据有多组,每组输入公告栏长度n(0<n<=100)。
海报张数m(0<m<=100),以及每张海报的左上角坐标(x1,y1)和右下角坐标(x2,y2)。
注意:其中坐标有可能小于0,大于n,但在int范围内。
答:代码实现如下:
i,j,t,x,y,w ...
问题一:查找一个数组中的第K小的数,注意同样大小算一样大。如2 1 3 4 5 2,第三小数为3。
时间复杂度要求达到O(n)。
答:实现代码如下(位图算法实现):
s,m,j;
main(i,n){
char a[65535]={0,};
for(;~scanf("%d",&n);printf("%d\n",--i-32768)){
for(i=0;i<n;++i) {scanf("%d",&s);a[s+32768]=1;}
scanf(&quo ...
问题一:读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。
例如:
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =
当A和B同时为0时输入结束,相应的结果不要输出。
答:实现代码如下:
import java.util.*;
public class Main {
static{
Scanner s=new Scanner(System.in);
String stop="zero + zero =&quo ...
问题:编写一个程序来确定一下你的机器是大端地址还是小端地址。
答:实现代码如下:
#include <stdio.h>
int main(){
int value = 0x1234;
char value_front=*((char *)(&value));
char value_back=*((char *)(&value)+1);
printf("value_front=0x%x\nvalue_back=0x%x\n",value_front,value_back);
system ...
问题:给定a和n,计算a+aa+aaa+a...a(n个a)的和,请注意a和n的取值范围分别为[1,9]和[1,100]。
答:实现代码如下:
i,k,j;
main(a,n){
char s[100],t[100];
for(;~scanf("%d%d",&a,&n);){
for(i=1,t[0]=s[0]=0;i<n+1;++i) {s[i]=t[i]=a;}
for(i=2;i<n+1;++i)
for(k=n;k>=i;--k){
...
问题:存在两组数组,和4个数字a,b,c,d,要求做如下操作,将第一个数组第a个数到第b个数,第二个数组的第c个数到第d数放到一个数组中,求出合并后数组的中间值,如果有两个中间值,取下标较小的那个。
输入要求:第一行一个整数t表示有t个测试数据,第二行两个整数,表示两个数组的长度,接下来两行表示两个数字的值。最后一行有四个整数a,b,c,d。数组的长度不会超过1000。
输出要求:每行一个整数,对应合并数组的下标在中间的那个值。
性能要求:在时间复杂度O(n)内完成这个计算任务。
答:实现代码如下:
#include <stdio.h>
int main()
{ ...
问题:假设给定一个嵌入式设备,它的内存有限,可以利用的内存只有1M(包括代码段和数据段空间)。你的任务是编写一个尽可能精简的程序以最高效的方式实现下面任务:
读入一个整数N,若N为非负整数,则计算N到2N之间的整数和;若N为一个负数,则求2N到N之间的整数和。
答:实现代码如下:
#include <stdio.h>
n,s,t,i;
int main()
{
for(;~scanf("%d",&n);printf("%d\n",t*s))
for(t=n>0?:-1,i=n=t*n,s=0;i ...
问题:12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问它们两个数反转的和是否等于两个数的和的反转,请编程实现。要求程序的效率尽可能高、代码尽量短以及内存使用量尽量小。
Input->第一行是一个正整数表示测试的个数n;只有n行,每行两个数据a和b(0<a,b<10000)。
Output->如果满足题目的要求输出a+b的值,否则输出NO。
答:实现代码如下:
#include <stdio.h>
#include <stdlib.h>
int r(int s){
int ...
问题:输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码大小从小到大进行排序,输出排序后的结果。要求时间复杂度尽量低。
答:实现代码如下:
#include <stdio.h>
#include <string.h>
int main(){
int a[128]={0};
char b[20];
int i,l,k;
char s[20];
while(scanf("%s",s)!=EOF) {
l=strlen(s);
for(i=0 ...
问题:对给定的字符串(只包含'z','o','j'三种字符),判断它是否能AC。
判断是否能够AC的规则如下:
(1)zoj能AC;
(2)若字符串形式为xzojx,则也能AC,其中x可以是N个'o'或者为空;
(3)若azbjc能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空。
答:实现代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char s[1000];
int l=0,z=0,j=0;
int a,b,c;
while(scanf(&q ...
问题:请你编写一个方法来判断一个整数是否是一个守形数,如果是输出"YES",否则输出"NO"。要求尽可能地简单和快速。
答:代码如下:
import java.lang.Math;
public class KeepFormatNumber {
public static String doJudge(int n) {
int sn =(int) Math.pow(n,2);
int len = countLength(n);
...
问题:键盘输入一个高精度的正整数N(N<=240位),去掉任意S个数字后剩下的数字按原来左右次序组成一个新的正整数。编程实现对给定的N和S,寻找一种解决方案,使得剩下的数最小。
例如,给定的N=178543,S=4,则得到的结果为13
答:实现代码如下:
/**
* @author: YuHuang
* @date: 2011-11-30
* @summary: Just for fun.
*/
public class DeleteNumberProblem {
public static String doDelete( ...
问题:请列举一些常用的JDK监控和故障处理的工具,并说明这些工具的作用。
答:在日常监控和故障排除工作中,我们常常使用以下几个小工具:
(1)jps:即JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。
(2)jstat:即JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据。
(3)jinfo:即Configuration Info for Java,显示虚拟机配置信息。
(4)jmap:即Memory Map for Java,生成虚拟机的内存转储快照( ...