我已经看到了一些关于寻找最小索引的问题。在这个相关的问题上有一个解决方案,它使用2个内置函数,min
,然后indexOf
。这种方法的问题是它会对整个列表进行两次检查。是否有任何单个内置函数用于最小/最大索引?
下面是该问题的一般解决方案以及一个简短的示例。
它只迭代列表一次,并返回最小项的索引和最小项本身。如果最小的项在列表中有一个或多个相等的项,那么它将返回第一个索引和项。
可以调整不可变的ListMin
public class ListMin<T> {
final int index;
final T item;
public ListMin(int index, T item) {
this.index = index;
this.item = item;
}
public static <E extends Comparable<E>> ListMin<E> getListMin(List<E> list) {
if (list.size() == 0) {
// throw exception, do what you want.
}
ListIterator<E> it = list.listIterator();
int minIndex = 0;
E minItem = it.next(); // first is minimum
while (it.hasNext()) {
E item = it.next();
if (item.compareTo(minItem) < 0) {
minItem = item;
minIndex = it.previousIndex();
}
}
return new ListMin<E>(minIndex, minItem);
}
public static void main(String[] args) {
List<String> list = Arrays.asList("B", "A", "C");
ListMin<String> listMin = getListMin(list);
System.out.println(listMin.index);
System.out.println(listMin.item);
}
}
到了Java7,还没有这样的方法;你必须自己实现它。请记住,对于列表
,这个问题不一定只有一个正确答案,因为单个对象可以多次添加到列表
,或者可以有多个相等的对象。
我实现了具有四个函数的bst,add,inorderPrint,min和max。最小值和最大值应该返回树中的最小/最大值,并删除该节点。树允许不平衡。下面是我的节点结构、add 函数、min 函数以及 valgrind 错误的实现。 Valgrind错误如下: 第43行是
我想知道是否有可能同时调用和(在同一个调用/循环中)。 假设以下数据帧: 我想计算
问题内容: 这段代码的结果为56。 知道里面发生了什么吗?我很困惑。 问题答案: X返回(值+3),而Y返回(值* 2) 给定值为4,这表示。 尽管函数不受范围限制(这意味着您可以安全地“嵌套”函数定义),但是此特定示例容易出错: 1)您不能在调用 之前先调用,因为函数只有执行一次才真正定义。 2)调用两次将导致PHP重新声明function ,从而导致致命错误: 致命错误:无法重新声明y() 两
问题内容: numpy.amax()将在数组中找到最大值,numpy.amin()对最小值进行相同操作。如果要同时找到max和min,则必须调用两个函数,这需要两次(非常大)数组传递,这似乎很慢。 numpy API中是否存在仅通过一次数据查找即可找到max和min的函数? 问题答案: numpy API中是否存在仅通过一次数据查找即可找到max和min的函数? 否。在撰写本文时,尚无此功能。(是
AWK内置了许多功能,程序员始终可以使用它们。 本章通过合适的示例描述了算术,字符串,时间,位操作和其他各种功能。 S.No. 内置功能和说明 1 算术函数 AWK具有以下内置算术功能。 2 字符串函数 AWK具有以下内置String函数。 3 时间函数 AWK具有以下内置时间功能。 4 位操作函数 AWK具有以下内置位操作功能。 5 杂项功能 AWK具有以下杂项功能。
本文向大家介绍jQuery内置的AJAX功能和JSON的使用实例,包括了jQuery内置的AJAX功能和JSON的使用实例的使用技巧和注意事项,需要的朋友参考一下 通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示。 我们先来看一下html模板: 一定要注意的就是里面所有的id属性,这个是一个关键。再来