Знайдіть найбільше і найменше число в масиві


29

Завдання

Завдання дуже просте. Давши масив, що містить лише цілі числа та рядки , виведіть найбільше число та найменше число.

Випробування

Input: [1, 2, 3, 4, 5, 6, 7, 8]
Output: 1, 8

Input: [5, 4, 2, 9, 1, 10, 5]
Output: 1, 10

Input: [7, 8, 10, "Hello", 5, 5]
Output: 5, 10

Числа в рядках не вважаються цілими числами:

Input: [1, 2, 3, 4, "5"]
Output: 1, 4

Якщо є лише одне ціле число, це і найбільше, і найменше ціле число:

Input: [1]
Output: 1, 1

Input: ["1", "2", "3", "4", 5]
Output: 5, 5

Правила

  • Можна припустити, що масив завжди містить принаймні одне ціле число.
  • Усі цілі числа позитивні (більше 0)
  • Порядок виводу не має значення.
  • Це , тому подання з найменшою кількістю байтів виграє!
  • Рядки можуть містити всі друковані символи ASCII ( 32 - 126) і не порожні.

Як рядки, що містять лапки, представлені у вхідних даних?
feersum

@feersum Чи це не залежало б від вашої мови?
Мартін Ендер

@feersum Мабуть із символами втечі, але якщо мова не впорається з цим, це нормально.
Аднан

@ MartinBüttner Якщо введення взято з stdin, це не повинно залежати від того, якою мовою використовується.
feersum

3
@feersum Це для мене нове. Навіть від STDIN [1, 2, 3] 1 2 3і {1; 2; 3}це всі допустимі вхідні формати, тому я не розумію, чому це повинно відрізнятися для рядкових літералів, отриманих від STDIN.
Мартін Ендер

Відповіді:


9

Серйозно, 9 6 байт

,ì;M@m

Спробуйте в Інтернеті

Як це працює

,                              Read list input
 ì                             Remove everything but numbers from it
  ;                            Make a copy
   m                           Extract its min value
    @M                         Extract the other one's max value
                               Implicit output (max then min)

Ага, так, я шукав таку команду. Але в документах непросто шукати.
Кінтопія

Я згоден. Документи - моя наступна велика мета.
Мего

11

JavaScript (ES6), 54 56

Відредагуйте 2 байти, збережені thx @Neil

Примітка: x===+xістинно, якщо і лише тоді, коли xце число

a=>[Math.max(...a=a.filter(x=>x===+x)),Math.min(...a)]

3
Чому зовнішні ()s?
Ніл

@Neil що зовнішній ()? Чому на землі я повинен мати зовнішні () s?
edc65

Це повертає функцію, її все одно потрібно викликати. (або просто видаліть a =>)
Майкл Теріот

2
Так, це анонімна функція. Це досить поширений спосіб розмістити відповідь у JavaScript @MichaelTheriot
edc65

@MichaelTheriot За замовчуванням ми дозволяємо подання представляти собою окремі функції, а не завжди вимагати повних програм.
Олексій А.

8

Pyth, 14 11 10 байт

hM_BS^I#1Q

Спробуйте в Інтернеті. Тестовий набір.

Пояснення

  • Q: оцінений вхід
  • #: відфільтруйте, що на:
    • I: значення однакове після:
      • ^…1 підвищення її до влади 1
  • S: сортувати це
  • _B: створити масив [previous, reversed(previous)]
  • hM: візьміть перший пункт кожного елемента цього

Найважча частина - це видалення рядків у гольфі, яка наразі займає 4 байти. Поточний підхід працює завдяки ^<str>1використанню першої декартової сили послідовності (в основному, переліку символів рядка), але ^<int>1є лише функцією ідентичності.


Хрм, ви також можете використати *#_1Qдля видалення рядків, які були б коротшими, якщо змінна була ініціалізована на негативну ...
FryAmTheEggman

7

Python 2, 42 байти

У Python 2 цілі числа завжди менші за рядки під час порівнянь, тому просте min(s)знайде найменше ціле число. Коли ми знаходимо максимум, ми повинні спочатку відфільтрувати рядки. Анонімна функція приймає послідовність і повертає кортеж з мінімумом і максимумом.

lambda s:(min(s),max(x for x in s if''>x))

Приклад:

[1,'77', 6, '', 4] -> (1, 6)

3
lambda a:Перед цим вам потрібно застрягти.
Дверна ручка

if x>0або if''>xзберегти один байт.
grc

@Doorknob, тепер лямбда, як було запропоновано.
Логічний лицар

1
@Dennis, я цього не знав. Я відредагував рішення, щоб зрозуміти, що порівняння працює лише в Python 2.
Логічний лицар

1
Нарощування: lambda s:(min(s),-min(-1*_ for _ in s))(39 байт)
Фран Борчич

7

Желе, 8 байт

|f¹Ṣ0,1ị

Спробуйте в Інтернеті!

Фон

У досконалому світі достатньо було б перетинати список із сплющеною версією самого себе. Рядки - це просто списки символів в Jelly, тому хоча початковий список міститиме цілі числа та рядки, сплющена версія міститиме цілі числа та символи, залишаючи в перетині лише цілі числа.

В реальному світі обидва аналізатори як вхідних, так і рядкових літералів дають символи замість рядків довжиною 1. Єдиним способом передачі однорядного рядка функції є кодування його "вручну" як, наприклад [”a], що є персонаж, загорнутий у масив.

Це дозволить заощадити байт, загалом 7 байт ( Спробуйте в Інтернеті! ).

fFṢ0,1ị

Оскільки це, мабуть, не прийнятно, нам також потрібен спосіб відмежувати символи від цілих чисел.

Побитові атоми Джеллі відчайдушно намагаються перетворити свої аргументи на цілі числа. Вони починаються з векторизації, поки не стикаються з типом глибини 0 (числа чи символи), потім намагаються перетворити їх на цілі числа. Для символу, який представляє ціле число, це буде успішним. Для інших, діадичний, побітовий атом просто відмовиться і поверне 0 .

Наприклад, побіжно АБО список [1, "2", "34", "-5", "a", "bc"]із самим собою вийде

[1, 2, [3, 4], [0, 5], 0, [0, 0]]

Перетинаючи результат з оригінальним списком, ми позбавляємось масивів та цілих чисел, яких не було в початковому списку.

Як це працює

|f¹Ṣ0,1ị  Main link. Input: A (list)

|         Bitwise OR the list A with itself.
 f¹       Filter the result by presence in A.
   Ṣ      Sort the resulting list of integers.
    0,1ị  Retrieve the elements at those indexes.
          Indices are 1-based and modular in Jelly, so 0 is the last (maximum),
          and 1 is the first (minimum).

6

Математика, 20 байт

MinMax@*Select[#>0&]

Тестові справи

MinMax@*Select[#>0&]@{1,2,3,4,"5"}
(* {1,4} *)

1
Чому *там? Здається, ви можете дістатись до 19, просто вирізавши її.
A Simmons

1
@ASimmons Це необхідно. MinMax@Select[#>0&]не є дійсною чистою функцією.
njpipeorgan

1
@ASimmons @*- це функціональний склад, тоді як @це функція.
Мартін Ендер

1
MinMax@Select[# > 0 &][{1, 2, 3, 4, "Hello", 5}]дає правильну відповідь
A Simmons

1
@ASimmons Спробуйте призначити MinMax@Select[# > 0 &]символ або просто оцінити його.
njpipeorgan

6

Рубі, 57 36 29 байт

Новачок тут, тому я не знаю, чи є якесь стандартне або загальновизнане місце / спосіб обчислення використаних байтів, будь-яка допомога буде дуже вдячна!

Відредаговано згідно з коментарями маніпуляцій та коментарями Дорноба!

->n{(n.map(&:to_i)&n).minmax}

Тест

2.3.0 :076 > f=->n{[(n.map(&:to_i) & n).min, (n.map(&:to_i) & n).max]}
 => #<Proc:0x007ff7650ee868@(irb):76 (lambda)>
2.3.0 :077 > f[[7, 8, 10, "Hello", 5, 5]]
 => [5, 10]

1
36 символів:->n{[(x=n.map(&:to_i)&n).min,x.max]}
манатура

2
29 байт, використовуючи minmax:->a{(a.map(&:to_i)&a).minmax}
Doorknob

5

CJam, 15 13 байт

{_:z&$2*_,(%}

Безіменний блок (функція), який очікує вхідний масив на стеку і залишає вихідний масив на своєму місці.

Запустити всі тестові справи.

Пояснення

_     e# Duplicate.
:z    e# Map over list: a) take abs() of integer elements (a no-op) or b) wrap strings
      e# in an array.
&     e# Set intersection: only the integers will appear in both arrays.
$     e# Sort.
2*    e# Repeat array twice (to make the code work with single-integer input).
_,    e# Duplicate, get length N.
(%    e# Decrement, get every (N-1)th element, i.e. the first and the last.

Я запропонував e) та e (aditsu. Він цього не прийняв
username.ak

@ username.ak Я не думаю, що це дуже корисно. Додавання оператора з двома знаками, який зберігає лише один байт над поточним рішенням, не є можливим реалізовуванням aditsu, і я також думаю, що для їх використання повинні бути більше корисних функцій.
Мартін Ендер

це збереже 3 байти:q~_e(ae)a+
username.ak

@ Username.ak Ну це за умови , що e(і e)буде ігнорувати рядки або що - то, що здається непослідовним. І якщо вона передбачає порівняння з рядками, вона, ймовірно, не зможе так само, як $і e>не може порівнювати цілі числа з рядками.
Мартін Ендер

5

Haskell, 41 39 байт

f x=[minimum,maximum]<*>[[i|Left i<-x]]

У Haskell всі елементи списку повинні бути одного типу, тому я не можу змішувати Integerі String. Однак існує Eitherтип поєднання двох типів в один. Тому вхідний список типу Either Integer String1 . fфільтрує Цілі числа, видаляє Eitherобгортку, додає список як єдиний елемент у новий список (наприклад [[1,2,3]]), щоб він <*>міг застосувати до нього функції, наведені в першому аргументі.

Приклад використання: f [Left 1, Left 3, Right "Hello", Left 2]-> [1,3].

Редагувати: @xnor привів <*>у гру і зберег 2 байти. Спасибі!


1 насправді це повністю поліморфно для другого типу, оскільки Stringвластивість ніколи не використовується.


Хороша ідея з узгодженням з малюнком. Ви можете зберегти два знаки з переверненою картою:f x=[minimum,maximum]<*>[[i|Left i<-x]]
xnor

@xnor: дуже приємно. Дуже дякую!
німі


4

Математика, 28 байт

MinMax[#/._String->Nothing]&

Я досі не розумію вашої одержимості Nothing... Це не означає нічого особливого ... Також, для 23 байт:MinMax@*Select[NumberQ]
LegionMammal978

@ LegionMammal978 Використовуйте "всі цілі числа позитивні"! Дивіться мою відповідь.
njpipeorgan

1
Гарні рішення, хлопці, я мав би подумати зробити це саме так! @ LegionMammal978, Nothingмає особливе значення. Оскільки Mathematica 10.2, він автоматично видаляється зі списків.
Сіммонс

@ LegionMammal978 Nothing- це документально підтверджена функція в останніх версіях.
Mr.Wizard

4

PHP, 50 48 байт

<?=min($a=array_filter($a,is_int)).', '.max($a);

1
Бийте мене за 2 хвилини :).
TMH

2
Як правило, заборонено вважати, що вхід вже є змінною. До речі, ви можете зберегти два байти, видаливши 'навколо is_int.
Blackhole

@Blackhole Дякую Не усвідомлював. Я використав ваше видалення цитат :)
PaulSkinner

4

Сітківка , 71

Дякуємо (як завжди) @ MartinBüttner за допомогу в гольфі.

Не конкурентоспроможний гольф, але його цікаво здійснити сортування цілих бульбашок у Retina.

Припустимо, що всі рядки вхідних даних є "подвійними цитатами і не містять жодних уникнутих подвійних лапок \".

A`"
¶

\d+
$&$*a $&$*a
+`\b(a+) +\1(a+)\b
$1$2 $1
 +[a ]+ +

(a)+
$#1

Введення розділено новим рядком.

Спробуйте в Інтернеті.


Я думаю, ви можете використовувати <space>.*<space>на другому до останнього етапу через жадібність.
FryAmTheEggman

4

Математика , 14

#&@@@MinMax@#&

Приклад:

tests = {
   {1, 2, 3, 4, 5, 6, 7, 8},
   {5, 4, 2, 9, 1, 10, 5},
   {7, 8, 10, "Hello", 5, 5},
   {1, 2, 3, 4, "5"},
   {1},
   {"1", "2", "3", "4", 5}
 };

# & @@@ MinMax@# & /@ tests
{{1, 8}, {1, 10}, {5, 10}, {1, 4}, {1, 1}, {5, 5}}

Пояснення:

Коли MinMaxотримується нечислове введення, воно зменшує проблему наскільки це можливо, а потім залишає обернені терміни Minта Max:

MinMax @ {7, 8, 10, "Hello", 5, 5}
{Min[5, "Hello"], Max[10, "Hello"]}

Завдяки автоматичному впорядкуванню, що відбувається у рядках, слідуйте цілим числам.

Applyна рівніspec {1}, стенограма @@@, потім використовується для виведення першого аргументу неатомних елементів. Зверніть увагу, що 5тут недоторкані:

foo @@@ {5, Max[10, "Hello"]}
{5, foo[10, "Hello"]}

3

Oracle SQL 11.2, 189 байт

SELECT MIN(TO_NUMBER(i)),MAX(TO_NUMBER(i))FROM(SELECT REGEXP_SUBSTR(:1,'[^,]+',1,LEVEL)i FROM DUAL CONNECT BY LEVEL<REGEXP_COUNT(:1,',')+2)WHERE TRIM(TRANSLATE(i,' 0123456789',' '))IS NULL;

Без гольфу

SELECT MIN(TO_NUMBER(i)),MAX(TO_NUMBER(i)) 
FROM  (
        SELECT REGEXP_SUBSTR(:1,'[^,]+',1,LEVEL)i 
        FROM   DUAL 
        CONNECT BY LEVEL<REGEXP_COUNT(:1,',')+2
      )
WHERE TRIM(TRANSLATE(i,' 0123456789',' '))IS NULL;

Підзапит розбирає масив і розділяє його, щоб заповнити представлення з одним елементом на рядок. Потім нечислові елементи відфільтровують.

Я б хотів, щоб я міг знайти спосіб зробити це за допомогою ЛІШЕГО та ВЕЛИКОГО, але не пощастить як обробити масив як параметр.


Ви залишаєте []масив у масиві, щоб не вибирати максимум чи хв, якщо вони є першими чи останніми елементами масиву. Вам також не потрібне положення WHERE, ви вже вибираєте агрегати, тому вам не потрібно фільтрувати. Шукайте числові символи у своїх реджексах та натискайте конверсію чисел до підзапиту (дуже мала небезпека відсунутих предикатів), і це стане 126 байтами:select min(i),max(i)from(select to_number(regexp_substr(&1,'\d+',1,level))i from dual connect by level<=regexp_count(&1,'\d'))
Ben

Тут немає потреби +в другому регулярному виразі, оскільки це не має значення, якщо ви генеруєте кілька додаткових рядків (економить байт). Також варто зазначити, що якщо у вас є рядок, складений виключно з чисел, ви не будете ігнорувати її тут; що потребує перевантажених функцій в одному пакеті, тому це зовсім не досить.
Бен

3

vimscript, 25 байт

g/"/d
sort n
t.
t.
2,$-1d

Так, вірно.

Очікує введення форми

1
2
3
4
"5"

І виводи у формі

1
4

Пояснення:

g/"/d    delete all lines that contain quotes
sort n   sort numerically
t.       duplicate the first line
t.       duplicate it again
2,$-1d   delete from line 2 to line (END-1)

Перший рядок потрібно дублювати двічі, щоб обробити крайовий регістр введення єдиного числа. Це тому, що остання команда поскаржиться, якщо при її досягненні є лише два рядки, оскільки в кінцевому підсумку 2,1dце - зворотний діапазон.


3

Perl 44 39 + 3 = 41 байт

@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"

Потрібні -paпрапори:

$ perl -pae'@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"' <<< '1 2 3 5 4'
1 5
$ perl -pae'@a=sort{$a-$b}grep!/"/,@F;$_="@a[0,-1]"' <<< '1 2 3 4 "5"'
1 4

Дякуємо @manatwork за те, що голили кілька байтів


Яка версія Perl? Для вашого другого прикладу я отримую інший результат: pastebin.com/judJys5g
манатура

@manatwork Ви праві, малюнок я не можу видалитиsort{$a-$b}grep...
andlrc

У вимозі не зазначено, що результат повинен бути форматований точно так, як у прикладах, і в цьому завданні явно не в тому, що в форматуванні. Тож багато хто з нас просто використовували те, що зручніше на нашій мові на вибір. У Perl я хотів би зробити це в такий спосіб : $_="@a[0,-1]".
манатура

Один символ коротше фільтрації: grep!/"/.
манастирство

Він говорить, що масив буде числами та рядками. Усі приклади в цьому записі є дворядковими рядками, але я не бачу нічого, що б сказало, що вони не можуть бути одноцитованими. Я думаю !/\D/, що потрібно замість цього !/"/ще один байт.
msh210

3

Джулія, 35 байт

x->extrema(filter(i->isa(i,Int),x))

Це лямбда-функція, яка приймає масив і повертає набір цілих чисел. Щоб викликати його, призначте його змінній.

Julia має вбудовану функцію extremaдля отримання мінімальних та максимальних елементів масиву у вигляді кортежу. Однак, оскільки масив також може містити рядки в ньому, спочатку ми повинні їх відфільтрувати. Ми можемо це зробити, перевіривши, чи кожен елемент використовує ціле число isa.


3

Japt, 23 байти

[V=Uf_bZÃn@X-Y})g Vw g]

Перевірте це в Інтернеті!

Як це працює

[V=Uf_  bZÃ n@  X-Y})g Vw g]
[V=UfZ{ZbZ} nXY{X-Y})g Vw g]

UfZ{ZbZ}   // Filter out the items Z in U where Z.b(Z) is falsy.
           // For numbers, this the original number, which is always non-0 (non-falsy).
           // For strings, this returns Z.indexOf(Z), which is always 0 (falsy).
nXY{X-Y}   // Sort by subtraction. Small items move to the front, large to the back.
V=         // Set variable V to the resulting array.
)g Vw g    // Take the first item in V, and the first in V.reverse().
[       ]  // Wrap them in an array so both are sent to output.

3

Bash, 40 31 30 байт

sort -n|sed /\"/d|sed '1p;$p;d'

Потрібен список розділених рядків:

$ echo $'5\n4\n2\n9\n1\n"10"\n5' | sort -n|sed /\"/d|sed '1p;$p;d'
1
9

Завдяки @manatwork відголити кілька байт


sed '1p;$p;d'зберігає байт.
Денніс

3

PowerShell, 53 36 байт

@($args[0]|?{$_-is[int]}|sort)[0,-1]

Збережено 17 байт завдяки @goric

OOOF ... PowerShell зазвичай грає досить швидко і вільно з кастингом, що зазвичай є хорошою справою для гольфу, але це шкодить цьому.

Переводить наш вхід $args[0]і передає його в Where-Objectоператор (the ?), який вибере лише цілі числа і передасть їх по конвеєру, відкинувши все інше. Оскільки динамічне повторне кастинг відбувається під час руху у фоновому режимі для вас (наприклад, 1+"5"повернення 6є абсолютно дійсним PowerShell), нам потрібно використовувати -isоператор для розмежування типів даних.

Звідти ми передаємо цей збір Sort-Object, який буде сортувати цілі числа від найменших до найбільших. Зовнішній ()необхідний, щоб ми могли посилатися на перший і останній елементи [0,-1](тобто найменший і найбільший), але зауважимо, що нам також потрібен зовнішній, @щоб примусити передати вихідний sortмасив як масив, якщо є лише один об'єкт (як результат ?, або тільки один об'єкт був вхід).


1
Погляньте на -isоператора типу тут . Я думаю , що ви могли б замінити .GetType().Name-eq"Int32"з , -is[int]щоб заощадити 17 байт
goric

@goric Супер дивовижно! Дякую за масивний гольф!
AdmBorkBork

3

MATL , 23 байти

"@Y:tX%1)2\?x]N$htX<wX>

Спробуйте в Інтернеті!

"       % implicitly input cell array. For loop that iterates on each cell
  @     %   push each cell
  Y:    %   cell's contents (either a number or a string)
  tX%   %   duplicate and push class. This will produce 'char'  or 'double'
  1)    %   get first letter: either 'c' or 'd'
  2\    %   is its ASCII code odd?
  ?     %   if so...
    x   %     delete (it's a string)
  ]     %   end if
  N$h   %   concatenate all stack into an array. This array will contain up to
        %   three numbers: minimum up to now, maximum up to now, new value (if any)
  tX<   %   duplicate. Push minimum
  wX>   %   swap. Push maximum.
        % implicitly end for
        % implicitly display stack contents

Ой, моє погано: с. Хоча приємна відповідь :)
Аднан

@Adnan Дякую! Трохи задовго :-)
Луїс Мендо

2

JavaScript (ES5), 105 байт

function a(b){m=Math;b=b.filter(function(c){return c===+c});alert(m.min.apply(m,b)+','+m.max.apply(m,b))}

Використання: a([1,2,3,'4'])

Просто намагаюся :)

"Безголів":

function a(b){
  m=Math;
  b=b.filter(function(c){
    return c===+c
  });
  alert(m.min.apply(m,b) + ',' + m.max.apply(m,b))
}


2

Perl 6 , 25 байт

Очевидною відповіддю була б ця лямбда WeverCode

*.grep(Int).minmax.bounds

Якщо це має бути повна програма

put get.words».&val.grep(Int).minmax.bounds

Вхід до цієї повної програми - це розділений пробілом список значень


Використання

# give it a lexical name
my &code = *.grep(Int).minmax.bounds;

say code [1, 2, 3, 4, 5, 6, 7, 8];  # (1 8)
say code [5, 4, 2, 9, 1, 10, 5];    # (1 10)
say code [7, 8, 10, "Hello", 5, 5]; # (5 10)
say code [1, 2, 3, 4, "5"];         # (1 4)
say code [1];                       # (1 1)
say code ["1", "2", "3", "4", 5];   # (5 5)

say code []; # (Inf -Inf)

2

𝔼𝕊𝕄𝕚𝕟, 16 символів / 20 байт

[МƲ(ï⇔⒡≔=+$⸩,МƵï

Try it here (Firefox only).

Непогано, не погано ...

Пояснення

Це виводить масив, що містить і максимум, і мінімум. (ï⇔⒡≔=+$⸩,в основному фільтрує всі рядки на вході, МƲотримує максимум у введенні та МƵотримує мінімум.

Просто до відома: це перший виклик , де я отримую використовувати , який в основному перетворюється ï⇔в ï=ï.



2

APL (Dyalog) , 13 байт

(⌊/,⌈/)⎕AV~⍨∊

Спробуйте в Інтернеті!

 enlist (згладити - це робить усі рядки символами у великому списку)

⎕AV~⍨ видаліть усі символи з а томічного V ектора (набір символів - залишає числа)

() Застосувати таку негласну функцію:

⌊/ мінімум поперек

, додається до

⌈/ максимальний поперек


2

Java (OpenJDK 8) , 124 байти

a->{int s[]={0,0},t;for(Object i:a)try{t=(int)i;s[0]=s[0]<1|t<s[0]?t:s[0];s[1]=s[1]<t?t:s[1];}catch(Exception e){}return s;}

Спробуйте в Інтернеті!

Функція лямбда Java 8, приймає масив як вхідний і видає масив {min, max}. Не конкуруючи, тому що вхід повинен бути цілим масивом.

Фіксований і -1 байт завдяки Кевіну Крейсейну


Ви можете зробити це змаганням, взявши список об'єктів і перевіривши, чи елемент є цілим чи рядком.
Кевін Круїссен

@KevinCruijssen зроблено, дякую
HyperNeutrino

<iтепер видає помилку без цілого числа. Крім того, ваш початковий код (і цей також) не працює min, оскільки він завжди виводиться 0для min. Ось можливе виправлення. EDIT: Try-засувка , здається, 1 байт коротше , ніж if(i instanceof Integer).
Кевін Круїссен

@KevinCruijssen о, не помітив цього, дякую!
HyperNeutrino

1

Джольф, 20 байт

Я, напевно, можу це гольф ... Мені потрібно впровадити перевірку типу коротших рішень.

γ fxd='nF~tH0ͺZkγZKγ
 _fx                 filter the input
    d='nF~tH0        checking for number type
γ                    call that "γ"
             ͺ       pair
              ZkγZKγ  the min and max of the array
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.