一个大公司的笔试题目如下:
题目如下: 写一个类,实现这样一个方法,此方法给定两个参数N、L(均为整数) N是一个自然数,L表示一个长度。要求此函数输出一个最小长度的连续数的数组,此数组的几个连续数的和要等于给定的N,并且该数组的长度 要大于等于给定的L。如没有满足该条件的则返回一个空数组{}。
eg1: (18,3)则应该return {5,6,7}; 分析满足和为18的连续数的数组有两个:{3,4,5,6}、{5,6,7} 应题目要求输出最短的数组,所以结果如上。
eg2: (18,4) 则应该返回结果{3,4,5,6};
eg3:(45,10)则返回结果为{0,1,2,3,4,5,6,7,8,9};
本人尝试着写出了一个算法,现在贴出来,跟大家讨论一下.希望大家提供最好的解决方案.
package cn.edu.ccnu.inc.algorithm;
/**
* 题目如下: 写一个类,实现这样一个方法,此方法给定两个参数N、L(均为整数) N是一个自然数,L表示一个长度。要求此函数输出一个最小长度的连续
* 数的数组,此数组的几个连续数的和要等于给定的N,并且该数组的长度 要大于等于给定的L。如没有满足该条件的则返回一个空数组{}。 eg1:
* (18,3)则应该return {5,6,7}; 分析满足和为18的连续数的数组有两个:{3,4,5,6}、{5,6,7}
* 应题目要求输出最短的数组,所以结果如上。 eg2: (18,4) 则应该返回结果{3,4,5,6}; eg3:
* (45,10)则返回结果为{0,1,2,3,4,5,6,7,8,9};
*
* @author 桂子山上一棵草
* @email :slowguy@qq.com
* @date 2009年10月21日
*
*/
public class NL {
static int min; // 记录连续数组的最小长度
static int start; // 最小连续数组的起始位置
public static void showResults(int N, int L)
{
int array[] = new int[N + 1];
for (int i = 0; i <= N; i++)
{ // 如: array[3] ={0,1,2,3}
array[i] = i; // 初始化
}
int total = 0;
int num = 0;
for (int i = 0; i <= N; i++)
{
total += array[i];
num++;
if (total == N && num >= L)
{
System.out.print("找到了一组结果:");
int k = i - num + 1;
if (min == 0)
{
min = num;
start = k;
} else if (num < min)
{
min = num;
start = k;
}
while (k <= i)
{
System.out.print(array[k] + " ");
k++;
}
System.out.println("");
}
if (total > N)
{
total = 0;
i = i - num + 1;
num = 0;
}
}
if (min == 0)
{
System.out.println("{}");
} else
{
System.out.print("最小长度连续数组为: ");
int i = 0;
System.out.print("{");
while (i < min)
{
System.out.print(" " + array[start + i]);
i++;
}
System.out.print("}");
}
}
public static void main(String[] args)
{
int N = 45;
int L = 3;
showResults(N, L);
}
}
测试结果如下:
- 大小: 15.1 KB
分享到:
相关推荐
网易有道笔试题第一部分偏产品策划知识.doc
网易2017校园招聘 网易有道笔试题.pdf
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。它把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比...
2011.9 有道浙大机试题 有兴趣的可以下下来看看 算法和概率的比较多
有道单词本.xml 可以导入到有道单词里面
有道词典《每日一句》经典收藏.pdf
单片机定时器其中有道题PPT课件.pptx
由于目前公司的人越来越多,行政MM每天处理这些发票事务非常的繁琐,现在需要你来写一个程序,拿着所有的发票信息,统计一下需要分别给每个人报销多少钱。
有道词典
前端项目源码:模仿有道云,个人制作的一款多人协同的云笔记 前端项目源码:模仿有道云,个人制作的一款多人协同的云笔记 前端项目源码:模仿有道云,个人制作的一款多人协同的云笔记 前端项目源码:模仿有道云,...
有道浏览器目前可用的google浏览器在线划词插件,不用去google商店下载了
有道API开发的一个Demo,词汇的翻译,仅供参考。代码简单
一个模拟163上有道标签页的日历,jsp版
2010年网易有道难题 资格赛试题 共3套
高仿有道词典 给你界面布局 或者代码编写规范的榜样
这个是王一珉老师出的1600题,已经出版,扫描版,包括答案,适用2021或者往后的考研,因为考研就这么多知识点,老师出书也是来来回回这些题,你懂得。
有道词典学堂之旅助力开学英语提升.docx
JAVA调用有道词典进行翻译 生成访问地址 返回结果,key 和密钥都有,解压就能用
基于python的有道爬虫系列,可以在线爬取数据分析,然后在线翻译。
仿有道网易预览