public long getMax() // get maximum value
{
if (nelems == 0) {
return -1;
}
long lngMax = arr[0];
for (int j = 1; j < nelems; j++) {
if (lngMax < arr[j]) {
lngMax = arr[j];
}
}
return lngMax;
}
这个方法返回一个数组中的最大值。我应该在这里写什么逻辑,而不是返回值,它返回最大值的位置而不使用java中的任何内置方法? 抱歉问愚蠢的问题。
答案 0 :(得分:2)
只需进行少量更改即可:
public long getIndexOfMaxValue() {
if (nelems == 0) {
return -1;
}
long result = 0;
for (int j = 1; j < nelems; j++) {
if (arr[result] < arr[j]) {
result = j;
}
}
return result;
}
答案 1 :(得分:0)
喜欢这个吗?
public int getMaxInd() // get maximum value
{
if (nelems == 0) {
return -1;
}
long lngMax = arr[0]
int lngMaxInd = 0;
for (int j = 1; j < nelems; j++) {
if (lngMax < arr[j]) {
lngMax = arr[j];
lngMaxInd = j;
}
}
return lngMaxInd;
}
答案 2 :(得分:0)
使用您自己的代码,请更改为:
public int getMaxIndex()
{
if (nelems == 0) {
return -1;
}
long lngMax = arr[0];
int index = 0;
for (int j = 1; j < nelems; j++) {
if (lngMax < arr[j]) {
lngMax = arr[j];
index = j;
}
}
return index;
}
答案 3 :(得分:-1)
public int getMax() // get maximum value
{
int index = -1;
if (nelems == 0) {
return -1;
}
long lngMax = arr[0];
for (int j = 1; j < nelems; j++) {
if (lngMax < arr[j]) {
lngMax = arr[j];
index = j;
}
}
return index;
}
只需跟踪最大元素的索引然后返回int而不是long并返回索引。