求数组的最大值并返回下标
# 求出一个数组的最大值,并得到对应的数组下标
思路
- 定义一个数组
- 将第一个数默认为最大值
- 从第二个数开始进行循环比较,发现有更大的就进行交换
# Go语言实现
// 求出一个数组的最大值,并得到对应的下标
var intArr [5]int = [...]int{1, -1, 9, 90, 11}
maxVal := intArr[0]
maxValIndex := 0
for i := 1; i < len(intArr); i++ {
// 开始从第二个数开始比较,如果发现有更大的就进行交换
if maxVal < intArr[i] {
maxVal = intArr[i]
maxValIndex = i
}
}
fmt.Printf("maxVal=%v maxValIndex=%v", maxVal, maxValIndex)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# PHP实现
class WArray
{
protected $array = [];
public function __construct($array)
{
$this->array = $array;
}
public function getArrayMaxValueAndIndex()
{
$maxVal = $this->array[0];
$maxValIndex = 0;
foreach ($this->array as $k => $v) {
if ($maxVal < $this->array[$k]) {
$maxVal = $this->array[$k];
$maxValIndex = $k;
}
}
return json_encode([
'maxVal' => $maxVal,
'maxValIndex' => $maxValIndex,
]);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
调用结果
// 调用
$warray = new WArray([1, -1, 9, 90, 11]);
$arrayMaxValueAndIndex = $warray->getArrayMaxValueAndIndex();
dd($arrayMaxValueAndIndex);
// 这里的dd是一个打印函数
// 结果显示
{"maxVal":90,"maxValIndex":3}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
编辑 (opens new window)
上次更新: 2021/10/21, 20:43:49