我试图找到最小的整数中的ArrayList
只是使用两个简单的为
循环。我最初尝试了一个for
循环,但是它没有正确更新。我还没有学习集合
,所以这应该在不使用任何集合
代码的情况下完成。
这就是我所拥有的:
public static void printInOrder(ArrayList<Integer> data){
int minIndex = 0 ;
for(int i = 0; i < data.size(); i++){
minIndex = i;
for(int j = i + 1; j < data.size() - 1; j++){
if(data.get(j) < data.get(minIndex)){
minIndex = j;}
}
System.out.println(data.get(minIndex) + " ");
}
}//printInOrder
我的最小值似乎总是列表中的最后一个值,所以我尝试打印数据。在第一个
以查看发生了什么,它似乎会更新不同的值,最后更新最后一个值。我不知道为什么会这样。for
循环中获取(minIndex)
这是它正在打印的内容,例如:
原始列表:[47, 19, 46, 42, 15, 26, 36, 27, 13, 15, 1, 40, 34, 14, 6, 34, 28, 12, 15, 13]打印最小:1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 12 12 12 15 13
未经测试:
public static int calculateMinIndex(final ArrayList<Integer> data) {
int minIndex = 0;
for(int i = 0; i < data.size() - 1; i++) {
if(data.get(i) > data.get(i+1)) {
minIndex = i+1;
}
}
return minIndex;
}
你不应该做排序来找到最小值
这是密码
public static void Min(int arr[])
{
int min = arr[0];
int i=0;
while(i<arr.length)
{
if (arr[i] < min) {
min=arr[i];
}
}
return min;
}
如果希望避免使用集合,可以使用此快速解决方案。
public static void printInOrder(ArrayList<Integer> data){
Integer[] array = (Integer[]) data.toArray();
Arrays.sort(array);
System.out.println(array[0]);
}
在这种情况下,最小的整数总是在索引0处。
或者,如果您确实希望使用循环遍历整个ArrayList,我建议您将实际值存储在变量中,而不是索引中。这样做,您将获得:
public static void printInOrder(ArrayList<Integer> data){
int minInteger = data.get(0);
for(int i = 1; i < data.size(); i++){
if(data.get(i) < minInteger) minInteger= data.get(i);
}
System.out.println(minInteger);
}
问题内容: 我想使用 Java流 来迭代 列表 并找到最低价格。以下说明,但不起作用(因为无法接受。 问题答案: 既然已经是,它就这么简单:
给定一个正整数数组,找出子集的最小数目,其中: 子集中每个元素的总和不超过一个值,k。 数组中的每个元素在任何子集中只使用一次 数组中的所有值都必须出现在任何子集中。 基本上,一个“填充”算法,但需要最小化容器,并需要确保所有东西都被填满。我目前的想法是按降序排序,当总和超过k时开始创建集合,开始下一个,但不确定什么是更好的方法。 编辑: Ex: 在输出集合中,所有1-5都被使用,并且在集合中仅使
问题内容: 我们需要在分配中递归地找到一个数组中的第二个最小整数。但是,为了更好地理解该主题,我想先通过本网站进行迭代,然后自己进行递归。 不幸的是,迭代地进行相当混乱。我知道该解决方案很简单,但我无法解决。 到目前为止,以下是我的代码: 这适用于一些数字,但不是全部。数字会变化,因为内部if条件的效率不如外部if条件的效率。 禁止阵列重排。 问题答案: 试试这个。当最小的数字是第一个时,第二个条
//我试图在我的数组列表中找到最大的字符串并将其打印出来,还包括最大元素所在的索引,并将其打印到屏幕上。我只是想知道我哪里出错了。 谢谢
我在这里写了这两个方法来查找最小和最大值。#2是基于这篇文章的这个答案。 如果我运行这样的简单基准测试: } 我通常会得到这样的结果: 我把算法弄错了吗?我本以为至少会有类似的结果。
我想既然查询的语法是: 查询的语法是 忽略案例集合查询的语法为: 但这似乎不起作用(它仍然区分大小写)。 想法? 编辑: 它也不是。