求一算法,欢迎大家积极讨论

lihan6415151528 2009-05-20 04:03:36
加精
一个List,数据是这样的,List(3个,7个,4个,17个....) n个代表有多少个元素

要求,写一个函数,传入两个参数,即开始值和结束值,返回此List中第几个元素的第几个开始和第几个元素的第几个结束。

例如
输入参数(5,15),返回第2个元素的第2开始,第4个元素的第1个结束 即 2,2,4,1
输入参数(10,20),返回第2个元素的第7开始,第4个元素的第6个结束 即 2,7,4,6

java这里冷清许多了感觉
...全文
1070 69 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
69 条回复
切换为时间正序
请发表友善的回复…
发表回复
nameljzkg 2009-12-29
  • 打赏
  • 举报
回复
貌似明白
可能是用数组做的
  • 打赏
  • 举报
回复
没怎么看懂,继续关注
A617051797 2009-06-09
  • 打赏
  • 举报
回复
关注
zhoulehua 2009-05-22
  • 打赏
  • 举报
回复
先顶顶。
「已注销」 2009-05-22
  • 打赏
  • 举报
回复
遍历不难,但效率有问题
lxp116 2009-05-22
  • 打赏
  • 举报
回复
不懂java
tatanihao 2009-05-22
  • 打赏
  • 举报
回复
还真不明白
qgylovelj 2009-05-22
  • 打赏
  • 举报
回复
JF
zouzedong 2009-05-22
  • 打赏
  • 举报
回复
关注·
huqi123456789 2009-05-22
  • 打赏
  • 举报
回复
太模糊拉

weixinfu3753 2009-05-22
  • 打赏
  • 举报
回复
先受教了!!!!!!!!!
鄙人姓胡 2009-05-22
  • 打赏
  • 举报
回复
高人还挺多的啊!!!
关注...
juanboai 2009-05-22
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.List;
public class ArraysTest {

private List<Integer> list = new ArrayList<Integer>();
public ArraysTest(List<Integer> _list)
{
list = _list;
}

public String getResultValues(int begin,int end)
{
return getValues(begin)+","+getValues(end);
}

public String getValues(int index)
{
int sum =0;
int postion= 0;
int postionIndex= 0;
String result = "";

for (int i = 0; i < list.size(); i++)
{
if (sum < index)
{
sum = sum+list.get(i);
}
else
{
postion= i;
postionIndex= index - (sum -list.get(i-1));
return String.valueOf(postion)+","+String.valueOf(postionIndex);
}
}
if (sum >= index)
{
postion= list.size();
postionIndex= index - (sum -list.get(list.size()-1));
return String.valueOf(postion)+","+String.valueOf(postionIndex);
}
return result;
}
/**
* @param args
*/
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(7);
list.add(4);
list.add(17);
ArraysTest test = new ArraysTest(list);
System.out.println(test.getResultValues(31, 31));
}
}

likee003 2009-05-22
  • 打赏
  • 举报
回复
楼主没有说清楚~
crs123 2009-05-22
  • 打赏
  • 举报
回复
有点深奥啊
aidianzi 2009-05-22
  • 打赏
  • 举报
回复
新手上路,,顶顶,,,,,,,,,,,,
skyzhangsky 2009-05-21
  • 打赏
  • 举报
回复
貌似没看懂
justinavril 2009-05-21
  • 打赏
  • 举报
回复
不冷清,我还在啊,哈哈。贴我的代码吧,不过其实可以用HashMap实现,把List里的数组作为map的value,key就是list里每个数组的长度,然后再来比较输出。不过我的代码就是最直接的 复制到数组中 然后遍历输出:
import java.util.*;

public class FindElements {
static List<int[]> list = new ArrayList<int[]>();
static int arrayLength;

public static void findElements(int start, int end){
arrayLength = 0;

if(start > end){
System.err.println("Error! Start > End!");
return;
}
Iterator<int[]> iterator = list.iterator();

while(iterator.hasNext())
arrayLength += iterator.next().length;

if (end > arrayLength){
System.err.println("Error! End is over the maximum!");
return;
}

int[] tempArray = new int[arrayLength];
int count = 0;

Iterator<int[]> iterator1 = list.iterator();

while(iterator1.hasNext()){
int[] intArray = iterator1.next();

for(int i=0; i<intArray.length; i++){
tempArray[count] = intArray[i];
count++;
}
}

for(int i=start-1; i<end; i++)
System.out.print(tempArray[i] +" ");

System.out.println();
}

public static void main(String args[]){
int[] intArray1 = {1, 4, 6, 8};
int[] intArray2 = {1, 14, 6, 5, 18, 22};
int[] intArray3 = {1, 22, 36};
int[] intArray4 = {91, 4, 6, 866, 55, 21, 72};

list.add(intArray1);
list.add(intArray2);
list.add(intArray3);
list.add(intArray4);

findElements(3, 7);
findElements(6, 14);
}
}
redhat4 2009-05-21
  • 打赏
  • 举报
回复
关注


.


人力资源

jabeginner 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 justinavril 的回复:]
不冷清,我还在啊,哈哈。贴我的代码吧,不过其实可以用HashMap实现,把List里的数组作为map的value,key就是list里每个数组的长度,然后再来比较输出。不过我的代码就是最直接的 复制到数组中 然后遍历输出:

Java codeimport java.util.*;

public class FindElements {
static List<int[]> list = new ArrayList<int[]>();
static int arrayLength;

public static void findElements(int start, i…
[/Quote]
加载更多回复(48)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧