该方法的目的是返回数组中最大元素的位置(下标索引)(不是它的值,而是它的位置)。如果相同的最大值在数组中出现多次,那么它应该返回第一个或最早的位置。如果数组没有元素,它应该只返回-1。
解决方案是:
public static int maxPos(int[] arr) {
int pos = 0;
if(arr.length > 0 ) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] > arr[pos]) {
pos = i;
} else {
pos = - 1;
}
}
return pos;
}
我理解设置虚拟变量“pos”来表示数组最大值的索引位置。并且有一个带有if(arr.length)的检查点
谢谢你
首先,你放在方括号里的是名为i
和pos
的变量,它们保存着你在数组中访问的数字位置的值。就像arrayList类的get方法一样。
在完成for循环之前,它不会返回pos
。一般来说,它会返回pos
,因为这是最大数字的索引,这是程序的重点。我认为您只是缺少一个括号,您有5个{
和4个}
。
你发布的代码包含一些错误,你应该从-1
的pos
开始(而不是在给定值不大于当前最大值时重置它)。此外,我会检查null
。然后你可以用第二个元素开始你的循环。比如,
public static int maxPos(int[] arr) {
int pos = -1; // <-- indicates no elements.
if (arr != null && arr.length > 0) {
pos = 0; // <-- there is at least one element.
for (int i = 1; i < arr.length; i++) {
if (arr[i] > arr[pos]) {
pos = i; // <-- update the max position
}
}
}
return pos;
}
此方法的任务是从数组中移除要移除的值。剩下的元素应该只向数组的开头移动。(数组的大小不会改变。)由于数组现在少了一个元素,最后一个元素的位置应该用0填充。如果数组中有多个toRemove的匹配项,则只应移除第一个匹配项。方法没有返回值,如果数组没有元素,它应该只是没有效果。 解决方案: 我不明白这个算法是如何工作的。boolean的使用让我感到困惑,我觉得我不完全理解原始数据类型是做什么的,我知道
问题内容: 我知道我可以像下面这样: 但是,由于它做了完整的排序,所以它非常慢。 我想知道numpy是否提供一些可以快速完成的方法。 问题答案: 该模块具有一种快速的局部排序方法,可直接与Numpy数组配合使用:。 请注意,返回的是已排序的实际值,如果要使用已排序的值的索引(返回值),则应使用。 我已经进行了基准测试: 其中是一个随机的1,000,000个元素的数组。 时间安排如下: :每个循环2
以下问题是在最近的一次微软采访中提出的 给定一个大小为 5 的未排序数组。需要多少个最小比较才能找到中位数?然后他把它扩展为n号。 根据我的说法,5个元素的解是6 这可以扩展到n个元素。如果不是,除了快速选择之外,我们如何在O(n)中的n个元素中找到中位数
本文向大家介绍JS查找数组中重复元素的方法详解,包括了JS查找数组中重复元素的方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS查找数组中重复元素的方法。分享给大家供大家参考,具体如下: JS的数据类型有一个数组。今天我们就来谈谈对数组的一种处理。相信很多人都遇到过从数组中查找出不重复的元素,但是我遇到的却是从数组中查找出重复的元素。 从js数组中查找出不重复的元素的方法有很多,
问题内容: 关于启动应用程序作为入口点,主要方法是Java应用程序中最重要的方法。使用此方法之前会发生什么尚不清楚。请有人可以通过以下方法签名来纠正我的看法,从而帮助我理解/阐明使用该方法之前发生的情况: JVM创建至少一个将访问您的主方法的对象。这个(假定的)对象尝试根据该API来访问Java应用程序,该API显然会将您绑定到已知的方法签名 您是否不能限制JVM上的(假定的)单独对象访问包含主要
本文向大家介绍JS求Number类型数组中最大元素方法,包括了JS求Number类型数组中最大元素方法的使用技巧和注意事项,需要的朋友参考一下 如何使用JS,在一个Number类型的数组里,查找最大(或最小)数呢? 以下介绍四个方法。 1. 不使用任何库函数 代码如下: 解释: 利用一个变量result来存储最大值。遍历待查找的数组,如果当前遍历的元素大于result,就把这个元素赋值给resul