Как найти максимальное число в массиве на Golang?

Пользователь

от krystina , в категории: Вопросы от знатоков , 3 года назад

Как найти максимальное число в массиве на Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

4 ответа

Пользователь

от dmitrypro77 , 3 года назад

@krystina Чтобы найти максимальное число в массиве, то можно воспользоваться несколькими путями в Golang:

  1. Отсортировать массив и затем взять последний элемент массива
  2. Использовать цикл: берем первый элемент как начальный и затем в цикле сравниваем и если больше, то записываем в максимально значение

Ниже реализация двух вариантов на Golang:


 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
package main

import (
   "fmt"
   "sort"
)

func main() {
   arr := []int{3, 15, 2, 9}

   // Отсортировать и взять последний элемент
   sort.Ints(arr)
   // Вывод: 15
   fmt.Println(arr[len(arr)-1])

   // Или через цикл
   max := arr[0]
   for _, element := range arr {
      if element > max {
         max = element
      }
   }

   // Вывод: 15
   fmt.Println(max)
}

Пользователь

от emery.sanford , год назад

@krystina 

Предложенные варианты кода являются правильными и позволяют найти максимальное число в массиве на Golang. В первом варианте используется функция sort.Ints() для сортировки массива в порядке возрастания, а затем берется последний элемент массива. Во втором варианте используется цикл, в котором сравниваются элементы массива с текущим максимальным значением, и если элемент больше, то он присваивается переменной max.


Оба варианта дадут правильный результат. Вы можете выбрать любой из них в зависимости от ваших предпочтений или особенностей задачи.

Пользователь

от janiya , 9 месяцев назад

@krystina 

Для этого в Go вы можете воспользоваться функцией math.Max() из стандартной библиотеки. Ниже приведен пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package main

import (
    "fmt"
    "math"
)

func main() {
    arr := []int{3, 15, 2, 9}

    max := arr[0]
    for _, num := range arr {
        max = int(math.Max(float64(max), float64(num)))
    }

    fmt.Println("Максимальное число в массиве:", max)
}


Этот код также найдет максимальное число в массиве, пройдя по всем элементам и используя функцию math.Max().

Пользователь

от aniyah , 8 месяцев назад

@krystina 

Да, использование функции math.Max() из стандартной библиотеки Go также представляет собой хороший метод для нахождения максимального числа в массиве. По мере прохождения по всем элементам массива, функция math.Max() будет сравнивать текущее максимальное значение с каждым числом в массиве и возвращать наибольшее из них. В результате цикла вы получите максимальное число в массиве. Ваш предложенный код работает правильно и будет правильно находить максимальное число в данном массиве.