Дат вам је низ целих бројева `nums` са индексирањем од 0 и позитиван цео број `k`.
Можете применити следећу операцију на низ било који број пута:

Изаберите било који елемент низа и преокрените бит у његовом бинарном запису. Преокретати бит значи променити 0 у 1 или обрнуто.

Вратите минималан број операција потребних да се битовски `XOR` свих елемената финалног низа изједначи са `k`.
Напомена да можете преокретати водеће нула битове у бинарном запису елемената. На пример, за број (101)_2 можете преокренути четврти бит и добити (1101)_2.

Пример 1:

Улаз: nums = [2,1,3,4], k = 1
Излаз: 2
Објашњење: Можемо урадити следеће операције:
- Изаберите елемент 2 који је 3 == (011)_2, преокренемо први бит и добијамо (010)_2 == 2. nums постаје [2,1,2,4].
- Изаберите елемент 0 који је 2 == (010)_2, преокренемо трећи бит и добијамо (110)_2 = 6. nums постаје [6,1,2,4].
`XOR` елемената финалног низа је (6 XOR 1 XOR 2 XOR 4) == 1 == k.
Може се показати да не можемо направити `XOR` једнак `k` у мање од 2 операције.

Пример 2:

Улаз: nums = [2,0,2,0], k = 0
Излаз: 0
Објашњење: `XOR` елемената низа је (2 XOR 0 XOR 2 XOR 0) == 0 == k. Дакле, није потребна ниједна операција.

Ограничења:

1 <= nums.length <= 10^5
0 <= nums[i] <= 10^6
0 <= k <= 10^6

Дат вам је 0-индексирани низ целих бројева nums и позитиван целобројни број k.
Можете применити следећу операцију на низ било који број пута:

Изаберите било који елемент низа и преокрените бит у његовом бинарном запису. Преокретати бит значи променити 0 у 1 или обрнуто.

Вратите минималан број операција потребних да се битовски `XOR` свих елемената финалног низа изједначи са `k`.
Напомена да можете преокретати водеће нула битове у бинарном запису елемената. На пример, за број (101)_2 можете преокренути четврти бит и добити (1101)_2.

Пример 1:

Улаз: nums = [2,1,3,4], k = 1
Излаз: 2
Објашњење: Можемо урадити следеће операције:
- Изаберите елемент 2 који је 3 == (011)_2, преокренемо први бит и добијамо (010)_2 == 2. nums постаје [2,1,2,4].
- Изаберите елемент 0 који је 2 == (010)_2, преокренемо трећи бит и добијамо (110)_2 = 6. nums постаје [6,1,2,4].
`XOR` елемената финалног низа је (6 XOR 1 XOR 2 XOR 4) == 1 == k.
Може се показати да не можемо направити `XOR` једнак `k` у мање од 2 операције.

Пример 2:

Улаз: nums = [2,0,2,0], k = 0
Излаз: 0
Објашњење: `XOR` елемената низа је (2 XOR 0 XOR 2 XOR 0) == 0 == k. Дакле, није потребна ниједна операција.

Ограничења:

1 <= nums.length <= 10^5
0 <= nums[i] <= 10^6
0 <= k <= 10^6

Дат вам је целобројни низ nums са индексима који почињу од 0 и позитиван цео број k.
Можете применити следећу операцију на низ било који број пута:

Изаберите било који елемент низа и промените један бит у његовом бинарном запису. Променити бит значи заменити 0 са 1 или обрнуто.

Вратите минималан број операција потребних да битејски XOR свих елемената коначног низа буде једнак k. Имајте на уму да можете мењати водеће нулте битове у бинарном запису елемената. На пример, за број (101)_2 можете преокренути четврти бит и добити (1101)_2.

Пример 1:

Улаз: nums = [2,1,3,4], k = 1
Излаз: 2
Објашњење: Можемо урадити следеће операције:
- Изаберите елемент 2 који је 3 == (011)_2, преокренемо први бит и добијамо (010)_2 == 2. nums постаје [2,1,2,4].
- Изаберите елемент 0 који је 2 == (010)_2, преокренемо трећи бит и добијамо (110)_2 = 6. nums постаје [6,1,2,4].
XOR елемената финалног низа је (6 XOR 1 XOR 2 XOR 4) == 1 == k.
Може се показати да не можемо направити XOR једнак k у мање од 2 операције.

Пример 2:

Улаз: nums = [2,0,2,0], k = 0
Излаз: 0
Објашњење: XOR елемената низа је (2 XOR 0 XOR 2 XOR 0) == 0 == k. Дакле, није потребна ниједна операција.

Ограничења:

1 <= nums.length <= 10^5
0 <= nums[i] <= 10^6
0 <= k <= 10^6


Дат вам је 2D низ целих бројева са нултим индексом dimensions.
За све индексе 0 <= i < dimensions.length, dimensions[i][0] представља дужину, а dimensions[i][1] представља ширину правоугаоника i.
Вратите површину правоугаоника са најдужом дијагоналом. Ако постоји више правоугаоника са најдужом дијагоналом, вратите површину правоугаоника са максималном површином.

Пример 1:

Улаз: dimensions = [[9,3],[8,6]]
Излаз: 48
Објашњење:
За индекс = 0, дужина = 9 и ширина = 3. Дужина дијагонале = sqrt(9 * 9 + 3 * 3) = sqrt(90) ≈ 9.487.
За индекс = 1, дужина = 8 и ширина = 6. Дужина дијагонале = sqrt(8 * 8 + 6 * 6) = sqrt(100) = 10.
Дакле, правоугаоник на индексу 1 има већу дужину дијагонале, зато враћамо површину = 8 * 6 = 48.

Пример 2:

Улаз: dimensions = [[3,4],[4,3]]
Излаз: 12
Објашњење: Дужина дијагонале је иста за обе која је 5, тако да је максимална површина = 12.

Ограничења:

1 <= dimensions.length <= 100
dimensions[i].length == 2
1 <= dimensions[i][0], dimensions[i][1] <= 100

Дат је 2D низ целих бројева dimensions са индексирањем од 0.
За све индексе i, 0 <= i < dimensions.length, dimensions[i][0] представља дужину, а dimensions[i][1] представља ширину правоугаоника i.
Вратите површину правоугаоника са најдужом дијагоналом. Ако постоји више правоугаоника са истом дужином дијагонале, вратите површину оног са највећом површином.

Пример 1:

Улаз: dimensions = [[9,3],[8,6]]
Излаз: 48
Објашњење:
За индекс = 0, дужина = 9 и ширина = 3. Дужина дијагонале = sqrt(9 * 9 + 3 * 3) = sqrt(90) ≈ 9.487.
За индекс = 1, дужина = 8 и ширина = 6. Дужина дијагонале = sqrt(8 * 8 + 6 * 6) = sqrt(100) = 10.
Дакле, правоугаоник на индексу 1 има већу дужину дијагонале, зато враћамо површину = 8 * 6 = 48.

Пример 2:

Улаз: dimensions = [[3,4],[4,3]]
Излаз: 12
Објашњење: Дужина дијагонале је иста за обе која је 5, тако да је максимална површина = 12.

Ограничења:

1 <= dimensions.length <= 100
dimensions[i].length == 2
1 <= dimensions[i][0], dimensions[i][1] <= 100

Дат је 2D низ целих бројева dimensions са индексирањем од 0.
За све индексе i, 0 <= i < dimensions.length, dimensions[i][0] представља дужину, а dimensions[i][1] представља ширину правоугаоника i.
Вратите површину правоугаоника са најдужом дијагоналом. Ако постоји више правоугаоника са истом дужином дијагонале, вратите површину оног са највећом површином.

Пример 1:

Улаз: dimensions = [[9,3],[8,6]]
Излаз: 48
Објашњење:
За индекс = 0, дужина = 9 и ширина = 3. Дужина дијагонале = скрт(9 * 9 + 3 * 3) = скрт(90) ≈ 9,487.
За индекс = 1, дужина = 8 и ширина = 6. Дужина дијагонале = скрт(8 * 8 + 6 * 6) = скрт(100) = 10.
Дакле, правоугаоник са индексом 1 има већу дијагоналну дужину, па враћамо површину = 8 * 6 = 48.

Пример 2:

Улаз: dimensions = [[3,4],[4,3]]
Излаз: 12
Објашњење: Дужина дијагонале је иста за обе и износи 5, тако да је максимална површина = 12.

Ограничења:

1 <= dimensions.length <= 100
dimensions[i].length == 2
1 <= dimensions[i][0], dimensions[i][1] <= 100


Дат вам је 0-индексирани низ позитивних целих бројева nums.
Подниз низа nums се назива incremovable ако низ постаје строго растући након уклањања тог подниза. На пример, подниз [3, 4] је incremovable подниз низа [5, 3, 4, 6, 7] јер уклањањем тог подниза низ [5, 3, 4, 6, 7] постаје [5, 6, 7], који је строго растући.
Вратите укупан број incremovable поднизова низа nums.
Запамтите да се празан низ сматра строго растућим.
Подниз је континуиран непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [1,2,3,4]
Излаз: 10
Објашњење: 10 incremovable поднизова су: [1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4], и [1,2,3,4], јер уклањањем било ког од ових поднизова nums постаје строго растући. Запамтите да не можете одабрати празан подниз.

Пример 2:

Улаз: nums = [6,5,7,8]
Излаз: 7
Објашњење: 7 incremovable поднизова су: [5], [6], [5,7], [6,5], [5,7,8], [6,5,7] и [6,5,7,8].
Може се показати да у nums постоји само 7 incremovable поднизова.

Пример 3:

Улаз: nums = [8,7,6,6]
Излаз: 3
Објашњење: 3 incremovable подниза су: [8,7,6], [7,6,6], и [8,7,6,6]. Запамтите да [8,7] није incremovable подниз јер након уклањања [8,7] nums постаје [6,6], који је сортиран у растућем редоследу, али није строго растући.

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 50

Дат вам је низ позитивних целих бројева индексованих од 0, nums.
Подниз бројева назива се уклонивинепомењиви ако низ нумс постаје стриктно растући када се уклони подниз. На пример, подниз [3, 4] је уклониви подниз низа [5, 3, 4, 6, 7] јер се уклањањем овог подниза мења низ [5, 3, 4, 6, 7] у [5, 6, 7] који се стриктно повећава.
Врати укупан број неуклонивих поднизова.
Имајте на уму да се празан низ сматра стриктно растућим.
Подниз је непрекидан непразан низ елемената унутар низа.

Пример 1:

Улаз: nums = [1,2,3,4]
Излаз: 10
Објашњење: 10 непомењивих поднизова су: [1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4] и [1,2,3,4], јер уклањањем било ког од ових поднизова nums постаје стриктно растући. Имајте на уму да не можете да изаберете празан подниз.

Пример 2:

Улаз: nums = [6,5,7,8]
Излаз: 7
Објашњење: 7 уклониви поднизова су: [5], [6], [5,7], [6,5], [5,7,8], [6,5,7] и [6,5,7,8].
Може се показати да постоји само 7 неуклоњивих поднизова у бројевима.

Пример 3:

Улаз: nums = [8,7,6,6]
Излаз: 3
Објашњење: 3 непомична подниза су: [8,7,6], [7,6,6] и [8,7,6,6]. Имајте на уму да [8,7] није неуклониви подниз јер након уклањања [8,7] бројеви постају [6,6], који се сортира узлазним редоследом, али не стриктно растућим.

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 50

Дат вам је низ позитивних целих бројева nums са индексима од 0.
Подниз низа nums назива се неуклоњивим ако низ nums постане строго растући када се тај подниз уклони.
На пример, подниз [3, 4] је уклоњив подниз низа [5, 3, 4, 6, 7] јер уклањање овог подниза мења низ [5, 3, 4, 6, 7] у [5, 6, 7], који је строго растући.
Вратите укупан број уклоњивих поднизова низа nums.
Напомена: Празан низ се сматра строго растућим.
Подниз је континуирани, непразни низ елемената унутар једног низа.

Пример 1:

Улаз: nums = [1,2,3,4]
Излаз: 10
Објашњење: 10 неуклоњивих поднизова су: [1], [2], [3], [4], [1,2], [2,3], [3,4], [1,2,3], [2,3,4], и [1,2,3,4], јер уклањањем било ког од ових поднизова nums постаје строго растући. Запамтите да не можете одабрати празан подниз.

Пример 2:

Улаз: nums = [6,5,7,8]
Излаз: 7
Објашњење: 7 неуклоњивих поднизова су: [5], [6], [5,7], [6,5], [5,7,8], [6,5,7] и [6,5,7,8].
Може се показати да у nums постоји само 7 недигибљивих поднизова.

Пример 3:

Улаз: nums = [8,7,6,6]
Излаз: 3
Објашњење: 3 неуклоњивих поднизова су: [8,7,6], [7,6,6], и [8,7,6,6]. Запамтите да [8,7] није недигибљив подниз јер након уклањања [8,7] nums постаје [6,6], који је сортиран у растућем редоследу, али није строго растући.

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 50


Дат вам је 0-индексирани низ целих бројева nums и целобројни број k.
У једној операцији можете изабрати било који индекс i низа nums тако да је 0 <= i < nums.length - 1 и замените nums[i] и nums[i + 1] са једном појавом nums[i] & nums[i + 1], где & представља оператор И (bitwise AND).
Вратите минималну могућу вредност битовског ОР (bitwise OR) преосталих елемената низа nums након примене највише k операција.

Пример 1:

Улаз: nums = [3,5,3,2,7], k = 2
Излаз: 3
Објашњење: Извршимо следеће операције:
1. Замените nums[0] и nums[1] са (nums[0] & nums[1]) тако да nums постане једнак [1,3,2,7].
2. Замените nums[2] и nums[3] са (nums[2] & nums[3]) тако да nums постане једнак [1,3,2].
Битовски ОР финалног низа је 3.
Може се показати да је 3 минимална могућа вредност битовског ОР преосталих елемената низа nums након примене највише k операција.

Пример 2:

Улаз: nums = [7,3,15,14,2,8], k = 4
Излаз: 2
Објашњење: Извршимо следеће операције:
1. Замените nums[0] и nums[1] са (nums[0] & nums[1]) тако да nums постане једнак [3,15,14,2,8].
2. Замените nums[0] и nums[1] са (nums[0] & nums[1]) тако да nums постане једнак [3,14,2,8].
3. Замените nums[0] и nums[1] са (nums[0] & nums[1]) тако да nums постане једнак [2,2,8].
4. Замените nums[1] и nums[2] са (nums[1] & nums[2]) тако да nums постане једнак [2,0].
Битовски ОР финалног низа је 2.
Може се показати да је 2 минимална могућа вредност битовски ОР преосталих елемената низа nums након примене највише k операција.

Пример 3:

Улаз: nums = [10,7,10,3,9,14,9,4], k = 1
Излаз: 15
Објашњење: Без примене било каквих операција, битовски ОР nums је 15.
Може се показати да је 15 минимална могућа вредност битовски ОР преосталих елемената низа nums након примене највише k операција.

Ограничења:

1 <= nums.length <= 10^5
0 <= nums[i] < 2^30
0 <= k < nums.length

Дат вам је низ целих бројева са индексом 0 nums и цео број k.
У једној операцији, можете изабрати било који индекс i низа nums тако да је 0 <= i < nums.length - 1 и замените nums[i] и nums[i + 1] са једном појавом nums[i] & nums[i + 1], где & представља оператор битовског И.
Вратите минималну могућу вредност битовског ИЛИ преосталих елемената низа nums након примене највише k операција.

Пример 1:

Улаз: nums = [3,5,3,2,7], k = 2
Излаз: 3
Објашњење: Извршимо следеће операције:
1. Замените nums[0] и nums[1] са (nums[0] & nums[1]) тако да nums постане једнак [1,3,2,7].
2. Замените nums[2] и nums[3] са (nums[2] & nums[3]) тако да nums постане једнак [1,3,2].
Битовско-или финалног низа је 3.
Може се показати да је 3 минимална могућа вредност битовског ИЛИ преосталих елемената низа nums након примене највише k операција.

Пример 2:

Улаз: nums = [7,3,15,14,2,8], k = 4
Излаз: 2
Објашњење: Извршимо следеће операције:
1. Замените nums[0] и nums[1] са (nums[0] и nums[1]) тако да nums постане једнак [3,15,14,2,8].
2. Замените nums[0] и nums[1] са (nums[0] и nums[1]) тако да nums постане једнак [3,14,2,8].
3. Замените nums[0] и nums[1] са (nums[0] и nums[1]) тако да nums постане једнак [2,2,8].
4. Замените nums[0] и nums[1] са (nums[0] и nums[1]) тако да nums постане једнак [2,0].
Битовско-или финалног низа је 2.
Може се показати да је 2 минимална могућа вредност битовског ИЛИ преосталих елемената низа nums након примене највише k операција.

Пример 3:

Улаз: nums = [10,7,10,3,9,14,9,4], k = 1
Излаз: 15
Објашњење: Без примене било каквих операција, битовско-или nums је 15.
Може се показати да је 15 минимална могућа вредност битовског ИЛИ преосталих елемената низа nums након примене највише k операција.

Ограничења:

1 <= nums.length <= 10^5
0 <= nums[i] < 2^30
0 <= k < nums.length

Дат вам је 0-индексиран низ нумс нумс и цео број к.
У једној операцији, можете изабрати било који индекс и нумс тако да је 0 <= и < нумс.ленгтх - 1 и заменити нумс[и] и нумс[и + 1] са једним појављивањем нумс[и] & нумс[и + 1], где & представља побитни АНД оператор.
Врати минималну могућу вредност битног ИЛИ преосталих елемената нумс након примене највише к операција.

Пример 1:

Улаз: nums = [3,5,3,2,7], k = 2
Излаз: 3
Објашњење: Урадимо следеће операције:
1. Замените нумс[0] и нумс[1] са (нумс[0] & нумс[1]) тако да нумс постане једнак [1,3,2,7].
2. Замените нумс[2] и нумс[3] са (нумс[2] & нумс[3]) тако да нумс постане једнак [1,3,2].
Побитно или коначног низа је 3.
Може се показати да је 3 минимална могућа вредност битног ОР преосталих елемената нумс након примене највише к операција.
Пример 2:

Улаз: nums = [7,3,15,14,2,8], k = 4
Излаз: 2
Објашњење: Урадимо следеће операције:
1. Замените нумс[0] и нумс[1] са (нумс[0] & нумс[1]) тако да нумс постане једнак [3,15,14,2,8].
2. Замените нумс[0] и нумс[1] са (нумс[0] & нумс[1]) тако да бројеви постану једнаки [3,14,2,8].
3. Замените нумс[0] и нумс[1] са (нумс[0] & нумс[1]) тако да нумс постане једнак [2,2,8].
4. Замените нумс[1] и нумс[2] са (нумс[1] & нумс[2]) тако да нумс постане једнак [2,0].
Битно-или коначног низа је 2.
Може се показати да је 2 минимална могућа вредност битног ОР преосталих елемената нумс након примене највише к операција.

Пример 3:

Улаз: nums = [10,7,10,3,9,14,9,4], k = 1
Излаз: 15
Објашњење: Без примене било каквих операција, битова или од нумс је 15.
Може се показати да је 15 минимална могућа вредност битног ИЛИ преосталих елемената нумс након примене највише к операција.

Ограничења:

1 <= nums.length <= 10^5
0 <= nums[i] < 2^30
0 <= k < nums.length


Dati su vam niz pozitivnih celih brojeva `nums` dužine `n`.
Poligon je zatvorena figura u ravni koja ima najmanje 3 stranice. Najduža stranica poligona mora biti manja od zbira njegovih ostalih stranica.
Obrnuto, ako imate `k` (gde je `k >= 3`) pozitivnih realnih brojeva `a_1, a_2, a_3, ..., a_k` gde važi `a_1 <= a_2 <= a_3 <= ... <= a_k` i `a_1 + a_2 + a_3 + ... + a_(k-1) > a_k`, tada uvek postoji poligon sa `k` stranica čije su dužine `a_1, a_2, a_3, ..., a_k`.
Obim poligona je zbir dužina njegovih stranica.
Vratite najveći mogući obim poligona čije stranice mogu biti formirane iz niza `nums`, ili `-1` ako nije moguće formirati poligon.

Пример 1:

```
Input: nums = [5,5,5]
Output: 15
```
Објашњење: Једини могући полигон који може бити направљен из `nums` има 3 странице: 5, 5 и 5. Периметар је 5 + 5 + 5 = 15.

Пример 2:

```
Input: nums = [1,12,1,2,5,50,3]
Output: 12
```
Објашњење: Полигон са највећим периметром који може бити направљен из `nums` има 5 страна: 1, 1, 2, 3 и 5. Периметар је 1 + 1 + 2 + 3 + 5 = 12. Не можемо имати полигон са 12 или 50 као најдужом страном јер није могуће укључити 2 или више мањих страна које имају већи збир од било које од њих. Може се показати да је највећи могући периметар 12.

Пример 3:

```
Input: nums = [5,5,50]
Output: -1
```
Објашњење: Нема могућности да се формира полигон из `nums`, јер полигон има барем 3 странице и 50 > 5 + 5.

Ограничења:

3 <= n <= 10^5
1 <= nums[i] <= 10^9

Дат вам је низ позитивних целих бројева `nums` дужине `n`.
Полигон је затворена равна фигура која има барем 3 странице. Најдужа страна полигона је мања од збирa његових других страна.
Супротно томе, ако имате `k` (`k >= 3`) позитивних реалних бројева `a_1, a_2, a_3, ..., a_k` где је `a_1 <= a_2 <= a_3 <= ... <= a_k` и `a_1 + a_2 + a_3 + ... + a_k-1 > a_k`, онда увек постоји полигон са `k` страница чије су дужине `a_1, a_2, a_3, ..., a_k`.
Периметар полигона је збир дужина његових страна.
Вратите највећи могући периметар полигона чије стране могу бити формиране из `nums`, или -1 ако није могуће направити полигон.

Пример 1:

Input: nums = [5,5,5]
Output: 15

Објашњење: Једини могући полигон који може бити направљен из `nums` има 3 странице: 5, 5 и 5. Периметар је 5 + 5 + 5 = 15.

Пример 2:

Input: nums = [1,12,1,2,5,50,3]
Output: 12

Објашњење: Полигон са највећим периметром који може бити направљен из `nums` има 5 страна: 1, 1, 2, 3 и 5. Периметар је 1 + 1 + 2 + 3 + 5 = 12. Не можемо имати полигон са 12 или 50 као најдужом страном јер није могуће укључити 2 или више мањих страна које имају већи збир од било које од њих. Може се показати да је највећи могући периметар 12.

Пример 3:

```
Input: nums = [5,5,50]
Output: -1

Објашњење: Нема могућности да се формира полигон из `nums`, јер полигон има барем 3 странице и 50 > 5 + 5.

Ограничења:

3 <= n <= 10^5
1 <= nums[i] <= 10^9

Дат вам је низ позитивних целих бројева nums дужине n.
Полигон је затворена равна фигура која има барем 3 странице. Најдужа страна полигона је мања од збирa његових других страна.
Супротно томе, ако имате k (k >= 3) позитивних реалних бројева a_1, a_2, a_3, ..., a_k где је a_1 <= a_2 <= a_3 <= ... <= a_k и a_1 + a_2 + a_3 + ... + a_k-1 > a_k, онда увек постоји полигон са k страница чије су дужине a_1, a_2, a_3, ..., a_k.
Периметар полигона је збир дужина његових страна.
Вратите највећи могући периметар полигона чије стране могу бити формиране из nums, или -1 ако није могуће направити полигон.

Пример 1:

Улаз: nums = [5,5,5]
Излаз: 15

Објашњење: Једини могући полигон који може бити направљен из nums има 3 странице: 5, 5 и 5. Периметар је 5 + 5 + 5 = 15.

Пример 2:

Улаз: nums = [1,12,1,2,5,50,3]
Излаз: 12

Објашњење: Полигон са највећим периметром који може бити направљен из nums има 5 страна: 1, 1, 2, 3 и 5. Периметар је 1 + 1 + 2 + 3 + 5 = 12. Не можемо имати полигон са 12 или 50 као најдужом страном јер није могуће укључити 2 или више мањих страна које имају већи збир од било које од њих. Може се показати да је највећи могући периметар 12.

Пример 3:

Улаз: nums = [5,5,50]
Излаз: -1

Објашњење: Нема могућности да се формира полигон из nums, јер полигон има барем 3 странице и 50 > 5 + 5.

Ограничења:

3 <= n <= 10^5
1 <= nums[i] <= 10^9


Дата вам је низ целих бројева nums дужине n.
Трошак низа је вредност његовог првог елемента. На пример, трошак [1,2,3] је 1 док је трошак [3,4,1] три.
Треба да поделите nums у три неповезана суседна подниза.
Вратите минимални могући збир цене ових подниза.

Пример 1:

Улаз: nums = [1,2,3,12]
Излаз: 6
Објашњење: Најбољи могући начин да се формирају 3 подниза је: [1], [2] и [3,12] са укупном ценом 1 + 2 + 3 = 6.
Остали могући начини да се формирају 3 подниза су:
- [1], [2,3] и [12] са укупном ценом 1 + 2 + 12 = 15.
- [1,2], [3] и [12] са укупном ценом 1 + 3 + 12 = 16.

Пример 2:

Улаз: nums = [5,4,3]
Излаз: 12
Објашњење: Најбољи могући начин да се формирају 3 подниза је: [5], [4] и [3] са укупном ценом 5 + 4 + 3 = 12.
Може се показати да је 12 минимални постигнути трошак.

Пример 3:

Улаз: nums = [10,3,1,1]
Излаз: 12
Објашњење: Најбољи могући начин да се формирају 3 подниза је: [10,3], [1] и [1] са укупном ценом 10 + 1 + 1 = 12.
Може се показати да је 12 минимални могући трошак.

Ограничења:

3 <= n <= 50
1 <= nums[i] <= 50

Дајете низу целих бројева број дужине n.
Цена низа је вредност свог првог елемента. На пример, цена од [1,2,3] је 1 док је цена [3,4,1] 3.
Морате поделити број у 3 одвојене непрекидне поднизове.
Вратите минималну могућу суму трошкова ових суборара.

Пример 1:

Улаз: nums = [1,2,3,12]
Излаз: 6
Објашњење: Најбољи могући начин формирања 3 суборара је: [1], [2], и [3,12] у укупном трошку од 1 + 2 + 3 = 6.
Остали могући начини формирања 3 суборара су:
- [1], [2,3] и [12] у укупном трошку од 1 + 2 + 12 = 15.
- [1,2], [3], и [12] у укупном трошку од 1 + 3 + 12 = 16.

Пример 2:

Улаз: nums = [5,4,3]
Излаз: 12
Објашњење: Најбољи могући начин формирања 3 суборара је: [5], [4] и [3] у укупном трошку од 5 + 4 + 3 = 12.
Може се показати да је 12 минимална цена остварива.

Пример 3:

Улаз: nums = [10,3,1,1]
Излаз: 12
Објашњење: Најбољи могући начин формирања 3 субарова је: [10,3], [1] и [1] у укупном цени од 10 + 1 + 1 = 12.
Може се показати да је 12 минимална цена остварива.

Ограничења:

3 <= n <= 50
1 <= nums[i] <= 50

Дата вам је низ целих бројева nums дужине n.
Цена низа је вредност његовог првог елемента. На пример, цена [1,2,3] је 1 док је цена [3,4,1] три.
Треба да поделите nums у три неповезана суседна подниза.
Вратите минимални могући збир цене ових подниза.

Пример 1:

Инпут: nums = [1,2,3,12]
Излаз: 6
Објашњење: Најбољи могући начин да се формирају 3 подниза је: [1], [2] и [3,12] са укупном ценом 1 + 2 + 3 = 6.
Остали могући начини да се формирају 3 подниза су:
- [1], [2,3] и [12] са укупном ценом 1 + 2 + 12 = 15.
- [1,2], [3] и [12] са укупном ценом 1 + 3 + 12 = 16.

Пример 2:

Инпут: nums = [5,4,3]
Излаз: 12
Објашњење: Најбољи могући начин да се формирају 3 подниза је: [5], [4] и [3] са укупном ценом 5 + 4 + 3 = 12.
Може се показати да је 12 минимална постигнута цена.

Пример 3:

Инпут: nums = [10,3,1,1]
Излаз: 12
Објашњење: Најбољи могући начин да се формирају 3 подниза је: [10,3], [1] и [1] са укупном ценом 10 + 1 + 1 = 12.
Може се показати да је 12 минимална постигнута цена.

Ограничења:

3 <= n <= 50
1 <= nums[i] <= 50


Дат вам је низ nums дужине n и позитиван целобројни број k.
Подниз низа nums се назива добрим ако је апсолутна разлика између његовог првог и последњег елемента тачно k, односно, подниз nums[i..j] је добар ако је |nums[i] - nums[j]| == k.
Вратите максималну суму доброг подниза низа nums. Ако не постоје добри поднизи, вратите 0.

Пример 1:

Улаз: `nums = [1,2,3,4,5,6]`, `k = 1`
Излаз: `11`
Објашњење: Апсолутна разлика између првог и последњег елемента мора бити 1 за добар подниз. Сви добри поднизови су: `[1,2]`, `[2,3]`, `[3,4]`, `[4,5]` и `[5,6]`. Максимални збир подниза је 11 за подниз `[5,6]`.

Пример 2:

Улаз: `nums = [-1,3,2,4,5]`, `k = 3`
Излаз: `11`
Објашњење: Апсолутна разлика између првог и последњег елемента мора бити 3 за добар подниз. Сви добри поднизови су: `[-1,3,2]` и `[2,4,5]`. Максимални збир подниза је 11 за подниз `[2,4,5]`.

Пример 3:

Улаз: `nums = [-1,-2,-3,-4]`, `k = 2`
Излаз: `-6`
Објашњење: Апсолутна разлика између првог и последњег елемента мора бити 2 за добар подниз. Сви добри поднизови су: `[-1,-2,-3]` и `[-2,-3,-4]`. Максимални збир подниза је -6 за подниз `[-1,-2,-3]`.

Ограничења:

2 <= `nums.length` <= 10^5
-10^9 <= `nums[i]` <= 10^9
1 <= `k` <= 10^9

Дата вам је низ nums дужине n и позитиван цео број k.
Подниз nums се назива добрим ако је апсолутна разлика између његовог првог и последњег елемента тачно k, другим речима, подниз nums[i..j] је добар ако је |nums[i] - nums[j]| == k.
Вратите максимални збир доброг подниза nums. Ако нема добрих поднизова, вратите 0.

Пример 1:

Улаз: nums = [1,2,3,4,5,6], k = 1
Излаз: 11
Објашњење: Апсолутна разлика између првог и последњег елемента мора бити 1 за добар подниз. Сви добри поднизови су: [1,2], [2,3], [3,4], [4,5], и [5,6]. Максимални збир подниза је 11 за подниз [5,6].

Пример 2:

Улаз: nums = [-1,3,2,4,5], k = 3
Излаз: 11
Објашњење: Апсолутна разлика између првог и последњег елемента мора бити 3 за добар подниз. Сви добри поднизови су: [-1,3,2] и [2,4,5]. Максимални збир подниза је 11 за подниз `[2,4,5]`.

Пример 3:

Улаз: nums = [-1,-2,-3,-4], k = 2
Излаз: -6
Објашњење: Апсолутна разлика између првог и последњег елемента мора бити 2 за добар подниз. Сви добри поднизови су: [-1,-2,-3] и  [-2,-3,-4]. Максимални збир подниза је -6 за подниз  [-1,-2,-3].

Ограничења:

2 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
1 <= k <= 10^9

Добијате низ nums дужине н и позитиван цео број к.
Подниз nums се назива добрим ако је апсолутна разлика између његовог првог и последњег елемента тачно k, другим речима, подниз nums[i..j] је добар ако је |nums[i] - nums[j]| == k.
Вратите максималну суму доброг подниза nums. Ако нема добрих поднизова, вратите 0.

Пример 1:

Улаз : nums = [1,2,3,4,5,6], к = 1
излаз : 11
Објашњење : Апсолутна разлика између првог и последњег елемента мора бити 1 за добар подниз. Сви добри поднизови су: [1,2], [2,3], [3,4], [4,5] и [5,6]. Максимална сума поднизова је 11 за подниз [5,6].

Пример 2:

Улаз : nums = [-1,3,2,4,5], к = 3
излаз : 11
Објашњење : Апсолутна разлика између првог и последњег елемента мора бити 3 за добар подниз. Сви добри поднизови су: [-1,3,2] и [2,4,5]. Максимална сума поднизова је 11 за подниз [2,4,5].

Пример 3:

Улаз : nums = [-1,-2,-3,-4], к = 2
излаз : -6
Објашњење : Апсолутна разлика између првог и последњег елемента мора бити 2 за добар подниз. Сви добри поднизови су: [-1,-2,-3] и [-2,-3,-4]. Максимална сума поднизова је -6 за подниз [-1, -2, -3].

Ограничења:

2 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
1 <= k <= 10^9


Дат вам је низ s који се састоји од малих слова енглеског алфабета.
Низ се назива посебним ако је састављен само од једног карактера. На пример, низ „abc“ није посебан, док су низови „ddd“, „zz“ и „f“ посебни.
Вратите дужину најдужег посебног подниза низа s који се појављује најмање три пута, или -1 ако ниједан посебан подниз не испуњава овај услов.
Подниз је непрекидан, непразан низ карактера унутар низа.

Пример 1:

Улаз: s = "aaaa"
Излаз: 2
Објашњење: Најдужи посебан подниз који се појављује три пута је "aa": поднизови "aaaa", "aaaa" и "aaaa".
Може се показати да је максимална достижна дужина 2.

Пример 2:

Улаз: s = "abcdef"
Излаз: -1
Објашњење: Не постоји посебан подниз који се појављује најмање три пута. Зато враћамо -1.

Пример 3:

Улаз: s = "abcaba"
Излаз: 1
Објашњење: Најдужи посебан подниз који се појављује три пута је "a": поднизови "abcaba", "abcaba" и "abcaba".
Може се показати да је максимална достижна дужина 1.

Ограничења:

3 <= s.length <= 50
s се састоји само од малих слова енглеског језика.

Дат вам је низ с који се састоји од малих слова енглеског језика.
Низ се назива посебним ако се састоји од само једног знака. На пример, стринг "abc" није посебан, док су стрингови "ddd", "zz" и "f" посебни.
Врати дужину најдужег специјалног подниза од с који се појављује најмање три пута, или -1 ако се ниједан посебан подниз не појављује најмање три пута.
Подниз је непрекидан непразан низ знакова унутар стринга.

Пример 1:

Улаз: s = "aaaa"
Излаз: 2
Објашњење: Најдужи специјални подниз који се појављује три пута је "аа": поднизови "аааа", "аааа" и "аааа".
Може се показати да је максимална достижна дужина 2.

Пример 2:

Улаз: s = "abcdef"
Излаз: -1
Објашњење: Не постоји посебан подниз који се појављује најмање три пута. Отуда врати -1.

Пример 3:

Улаз: s = "abcaba"
Излаз: 1
Објашњење: Најдужи специјални подниз који се појављује три пута је "а": поднизови "abcaba", "abcaba" и "abcaba".
Може се показати да је максимална достижна дужина 1.

Ограничења:

3 <= s.length <= 50
с се састоји само од малих енглеских слова.

Дат вам је стринг s који се састоји од малих слова енглеске абецеде.
Стринг се назива специјалним ако је сачињен само од једног карактера. На пример, стринг "abc" није специјалан, док су стрингови "ddd", "zz" и "f" специјални.
Вратите дужину најдужег специјалног подстринга стринга s који се јавља најмање три пута, или -1 ако ниједан специјални подстринг не постоји најмање три пута.
Подстринг је непрекидан непразан низ карактера унутар стринга.

Пример 1:

Улаз: s = "aaaa"
Излаз: 2
Објашњење: Најдужи посебан подстринг који се појављује три пута је "aa": подстрингови "aaaa", "aaaa" и "aaaa".
Може се показати да је максимална достижна дужина 2.

Пример 2:

Улаз: s = "abcdef"
Излаз: -1
Објашњење: Не постоји посебан подстринг који се појављује најмање три пута. Зато враћамо -1.

Пример 3:

Улаз: s = "abcaba"
Излаз: 1
Објашњење: Најдужи посебан подстринг који се појављује три пута је "a": подстрингови "abcaba", "abcaba" и "abcaba".
Може се показати да је максимална достижна дужина 1.

Ограничења:

3 <= s.length <= 50
s се састоји само од малих слова енглеског језика.


Data je 0-indeksirana cela lista `nums` veličine n i 0-indeksirana cela lista `pattern` veličine m, koje sadrže celobrojne vrednosti -1, 0 i 1.
Podniz `nums[i..j]` veličine m + 1  se kaže da odgovara šablonu ako sledeći uslovi važe za svaki element `pattern[k]`:

- nums[i + k + 1] > nums[i + k] ako je pattern[k] == 1.
- nums[i + k + 1] == nums[i + k] ako je pattern[k] == 0.
- nums[i + k + 1] < nums[i + k] ako je pattern[k] == -1

Вратити број поднизова у `nums` који одговарају шаблону.

Пример 1:

Улаз: `nums = [1,2,3,4,5,6]`, `pattern = [1,1]`
Излаз: `4`
Објашњење: Шаблон `[1,1]` означава да тражимо строго растуће поднизове величине 3. У низу `nums`, поднизови `[1,2,3]`, `[2,3,4]`, `[3,4,5]`, и `[4,5,6]` одговарају овом шаблону.
Дакле, постоје 4 подниза у `nums` који одговарају шаблону.

Пример 2:

Улаз: `nums = [1,4,4,1,3,5,5,3]`, `pattern = [1,0,-1]`
Излаз: `2`
Објашњење: Овде, шаблон `[1,0,-1]` означава да тражимо секвенцу где је први број мањи од другог, други је једнак трећем, а трећи је већи од четвртог. У низу `nums`, поднизови `[1,4,4,1]`, и `[3,5,5,3]` одговарају овом шаблону.
Дакле, постоје 2 подниза у `nums` који одговарају шаблону.

Ограничења:

2 <= n == nums.length <= 100
1 <= nums[i] <= 10^9
1 <= m == pattern.length < n
-1 <= pattern[i] <= 1

Дат вам је низ целих бројева nums величине n и низ целих бројева pattern величине m који се састоји од целих бројева -1, 0 и 1.
Подниз nums[i..j] величине m + 1 се сматра да одговара узорку ако се следећи услови задовоље за сваки елемент pattern[k]:

nums[i + k + 1] > nums[i + k] ако је pattern[k] == 1.
nums[i + k + 1] == nums[i + k] ако је pattern[k] == 0.
nums[i + k + 1] < nums[i + k] ако је pattern[k] == -1.

Вратити број поднизова у nums који одговарају шаблону.

Пример 1:

Улаз: nums = [1,2,3,4,5,6], pattern = [1,1]
Излаз: 4
Објашњење: Шаблон [1,1] означава да тражимо строго растуће поднизове величине 3. У низу nums, поднизови [1,2,3], [2,3,4], 3,4,5], и [4,5,6] одговарају овом шаблону.
Дакле, постоје 4 подниза у nums који одговарају шаблону.

Пример 2:

Улаз: nums = [1,4,4,1,3,5,5,3], pattern = [1,0,-1]
Излаз: 2
Објашњење: Овде, шаблон [1,0,-1] означава да тражимо секвенцу где је први број мањи од другог, други је једнак трећем, а трећи је већи од четвртог. У низу nums, поднизови [1,4,4,1], и [3,5,5,3] одговарају овом шаблону.
Дакле, постоје 2 подниза у nums који одговарају шаблону.

Ограничења:

2 <= n == nums.length <= 100
1 <= nums[i] <= 10^9
1 <= m == pattern.length < n
-1 <= pattern[i] <= 1

Дат је низ целих бројева nums са индексима почевши од 0 величине n, и низ целих бројева pattern са индексима почевши од 0 величине m који се састоји од целих бројева -1, 0 и 1.
Подниз nums[i..j] величине m + 1 одговара шаблону ако се задовољавају следећи услови за сваки елемент pattern[k]:

nums[i + k + 1] > nums[i + k] if pattern[k] == 1.
nums[i + k + 1] == nums[i + k] if pattern[k] == 0.
nums[i + k + 1] < nums[i + k] if pattern[k] == -1.

Вратити број поднизова у nums који одговарају шаблону.

Пример 1:

Улаз: nums = [1,2,3,4,5,6], pattern = [1,1]
Излаз: 4
Објашњење: Шаблон [1,1] означава да тражимо строго растуће поднизове величине 3. У низу nums, поднизови [1,2,3], [2,3,4], [3,4,5], и [4,5,6] одговарају овом шаблону.
Дакле, постоје 4 подниза у nums који одговарају шаблону.

Пример 2:

Улаз: nums = [1,4,4,1,3,5,5,3], pattern = [1,0,-1]
Излаз: 2
Објашњење: Овде, шаблон [1,0,-1] означава да тражимо секвенцу где је први број мањи од другог, други је једнак трећем, а трећи је већи од четвртог. У низу nums, поднизови [1,4,4,1], и [3,5,5,3] одговарају овом шаблону.
Дакле, постоје 2 подниза у nums који одговарају шаблону.

Ограничења:

2 <= n == nums.length <= 100
1 <= nums[i] <= 10^9
1 <= m == pattern.length < n
-1 <= pattern[i] <= 1


Алиса и Боб играју игру на потезе на кружном пољу окруженом цвећем. Круг представља поље, а између Алисе и Боба налази се x цветова у смеру казаљке на сату и y цветова у супротном смеру казаљке на сату.
Игра се одвија на следећи начин:
Алиса прво игра.
У сваком потезу, играч мора изабрати или смер казаљке на сату или супротан смер казаљке на сату и убрати један цвет са те стране.
На крају потеза, ако не остане ниједан цвет уопште, тренутни играч ухвати свог противника и побеђује у игри.

За дата два цела броја, n и m, задатак је израчунати број могућих парова (x, y) који задовољавају услове:

Алиса мора да победи у игри према описаним правилима.
Број цветова x у смеру казаљке на сату мора бити у опсегу[1,n].
Број цветова y у супротном смеру казаљке на сату мора бити у опсегу [1,m].

Вратите број могућих парова (x, y) који испуњава услове поменуте у задатку.

Пример 1:

Улаз: n = 3, m = 2
Излаз: 3
Објашњење: Следећи парови испуњавају услове описане у задатку: (1,2), (3,2), (2,1).

Пример 2:

Улаз: n = 1, m = 1
Излаз: 0
Објашњење: Нема парова који испуњавају услове описане у задатку.

Ограничења:

1 <= n, m <= 10^5

Алице и Боб играју игру засновану на окретању на кружној области окруженој цвећем. Круг представља поље, а у смеру у смеру казаљке на сату између Алиса и Боба  и y цветова у супротном смеру казаљке на сату између њих.
Игра се наставља на следећи начин:

Алица игра први пут.
На сваком кораку, играч мора да одабере у смеру казаљке на сату или у смеру супротном од казаљке на сату и одаберите један цвет са те стране.
На крају скретања, ако уопште нема цветова, тренутни играч снима свог противника и осваја игру.

С обзиром на два цела бројева, n и m, задатак је израчунавање броја могућих парова (x, y) који задовољавају услове:

Алице мора да освоји игру према описаним правилима.
Број цвећа у смеру казаљке на сату мора бити у опсегу [1, н].
Број цвећа у супротном смеру казаљке на сату мора бити у опсегу [1, М].

Вратите број могућих парова (x, y) који задовољавају услове наведене у изјави.

Пример 1:

Улаз: n = 3, m = 2
Излаз: 3
Објашњење: Следећи парови задовољавају услове описане у изјави: (1,2), (3,2), (2,1).

Пример 2:

Улаз: n = 1, m = 1
Излаз: 0
Објашњење: Ниједан парова не задовољава услове описане у изјави.

Ограничења:

1 <= n, m <= 10^5

Алисе и Боб играју игру на потезе на кружном пољу окруженом цвећем. Круг представља поље, а постоји x цветова у смеру казаљке на сату између Алисе и Боба, и y цветова у супротном смеру казаљке на сату између њих.
Игра се одвија на следећи начин:

Алисе прва игра.
У сваком потезу, играч мора изабрати или смер казаљке на сату или супротан смер казаљке на сату и убрати један цвет са те стране.
На крају потеза, ако не остане ниједан цвет уопште, тренутни играч ухвати свог противника и побеђује у игри.

За дата два цела броја, n и m, задатак је израчунати број могућих парова (x, y) који задовољавају услове:

Алисе мора победити у игри према описаним правилима.
Број цветова x у смеру казаљке на сату мора бити у опсегу [1,n].
Број цветова y у супротном смеру казаљке на сату мора бити у опсегу [1,m].

Вратите број могућих парова (x, y) који задовољавају услове поменуте у задатку.

Пример 1:

Улаз: n = 3, m = 2
Излаз: 3
Објашњење: Следећи парови задовољавају услове описане у задатку: (1,2), (3,2), (2,1).

Пример 2:

Улаз: n = 1, m = 1
Излаз: 0
Објашњење: Нема парова који задовољавају услове описане у задатку.

Ограничења:

1 <= n, m <= 10^5


Дат вам је 0-индексиран низ позитивних целих бројева nums.
У једној операцији можете разменити било која два суседна елемента ако имају исти број постављених битова. Ову операцију можете извршити било који број пута (укључујући нулу).
Вратите true ако можете сортирати низ, у супротном вратите false.

Пример 1:

Улаз: nums = [8,4,2,30,15]
Излаз: true
Објашњење: Погледајмо бинарне приказе сваког елемента. Бројеви 2, 4 и 8 имају по један постављен бит са бинарним приказом "10", "100" и "1000". Бројеви 15 и 30 имају по четири постављена бита са бинарним приказом "1111" и "11110".
Можемо сортирати низ користећи 4 операције:
- Замените nums[0] са nums[1]. Ова операција је валидна јер 8 и 4 имају по један подешени бит. Низ постаје [4,8,2,30,15].
- Замените nums[1] са nums[2]. Ова операција је валидна јер 8 и 2 имају по један подешени бит. Низ постаје [4,2,8,30,15].
- Замените nums[0] са nums[1]. Ова операција је валидна јер 4 и 2 имају по један подешени бит. Низ постаје [2,4,8,30,15].
- Замените nums[3] са nums[4]. Ова операција је валидна јер 30 и 15 имају по четири постављена бита. Низ постаје [2,4,8,15,30].
Низ је сортиран, стога враћамо true.
Постоје и други низови операција који такође могу сортирати низ.

Пример 2:

Улаз: nums = [1,2,3,4,5]
Излаз: true
Објашњење: Низ је већ сортиран, стога враћамо true.

Пример 3:

Улаз: nums = [3,16,8,4,2]
Излаз: false
Објашњење: Показаће се да није могуће сортирати улазни низ помоћу било ког броја операција.

Ограничења:

1 <= nums.length <= 100
1 <= nums[i] <= 2^8

Дат вам је 0 индексиран низ позитивних целих бројева бројева.
У једној операцији, можете заменити било која два суседна елемента ако имају исти број постављених битова. Дозвољено вам је да урадите ову операцију било који број пута (укључујући нулу).
Вратите true ако можете сортирати низ, иначе вратите false.

Пример 1:

Улаз: nums = [8,4,2,30,15]
Излаз: истина
Објашњење: Погледајмо бинарни приказ сваког елемента. Бројеви 2, 4 и 8 имају по један сет бит са бинарним приказом „10“, „100“ и „1000“ респективно. Бројеви 15 и 30 имају по четири постављена бита са бинарним приказом "1111" и "11110".
Можемо сортирати низ користећи 4 операције:
-Замените nums[0] са nums[1]. Ова операција је валидна јер 8 и 4 имају по један подешени бит. Низ постаје [4,8,2,30,15].
-Замените nums[1] са nums[2]. Ова операција је валидна јер 8 и 2 имају по један подешени бит. Низ постаје [4,2,8,30,15].
-Замените nums[0] са nums[1]. Ова операција је валидна јер 4 и 2 имају по један подешени бит. Низ постаје [2,4,8,30,15].
-Замените nums[3] са nums[4]. Ова операција је валидна јер 30 и 15 имају по четири постављена бита. Низ постаје [2,4,8,15,30].
Низ је постао сортиран, па враћамо труе.
Имајте на уму да могу постојати и друге секвенце операција које такође сортирају низ.

Пример 2:

Улаз: nums = [1,2,3,4,5]
Излаз: true
Објашњење: Низ је већ сортиран, стога враћамо труе.

Пример 3:

Улаз: nums = [3,16,8,4,2]
Излаз: false
Објашњење: Може се показати да није могуће сортирати улазни низ користећи било који број операција.

Ограничења:

1 <= nums.length <= 100
1 <= nums[i] <= 2^8

Дати су вам низ позитивних целих бројева nums.
У једној операцији можете заменити било која два суседна елемента ако имају исти број подешених битова. Дозвољено вам је изводити ову операцију било који број пута (укључујући нулу).
Вратите true ако можете сортирати низ, иначе вратите false.

Пример 1:

Улаз: nums = [8,4,2,30,15]
Излаз: true
Објашњење: Погледајмо бинарне приказе сваког елемента. Бројеви 2, 4 и 8 имају по један постављен бит са бинарним приказом "10", "100" и "1000". Бројеви 15 и 30 имају по четири постављена бита са бинарним приказом "1111" и "11110".
Можемо сортирати низ користећи 4 операције:
- Замените nums[0] са nums[1]. Ова операција је валидна јер 8 и 4 имају по један подешени бит. Низ постаје [4,8,2,30,15].
- Замените nums[1] са nums[2]. Ова операција је валидна јер 8 и 2 имају по један подешени бит. Низ постаје [4,2,8,30,15].
- Замените nums[0] са nums[1]. Ова операција је валидна јер 4 и 2 имају по један подешени бит. Низ постаје [2,4,8,30,15].
- Замените nums[3] са nums[4]. Ова операција је валидна јер 30 и 15 имају по четири постављена бита. Низ постаје [2,4,8,15,30].
Низ је сортиран, због тога враћамо true.
Пазите да постоје и други низови операција који такође могу сортирати низ.

Пример 2:

Улаз: nums = [1,2,3,4,5]
Излаз: true
Објашњење: Низ је већ сортиран, стога враћамо true.

Пример 3:

Улаз: nums = [3,16,8,4,2]
Излаз: false
Објашњење: Показаће се да није могуће сортирати улазни низ помоћу било ког броја операција.

Ограничења:

1 <= nums.length <= 100
1 <= nums[i] <= 2^8


Дата су вам два целобројна низа са једним индексом, nums и changeIndices, са дужинама n и m, респективно.

У почетку, сви индекси у nums су неозначени. Ваш задатак је да означите све индексе у nums.

У свакој секунди, s, у опсегу од 1 до m (укључиво), можете извршити једну од следећих операција:

Изаберите индекс i у опсегу [1, n] и смањите nums[i] за 1.

Ако је nums[changeIndices[s]] једнако 0, означите индекс changeIndices[s].

Немојте ништа радити.

Вратите цео број који означава најранију секунду у опсегу [1, m] када се сви индекси у nums могу означити одабиром операција оптимално, или -1 ако је то немогуће.

**Пример 1:**

Улаз: nums = [2,2,0], changeIndices = [2,2,2,2,3,2,2,1]
Излаз: 8
Објашњење: У овом примеру, имамо 8 секунди. Следеће операције могу бити изведене да се означе сви индекси:
Секунда 1: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [1,2,0].
Секунда 2: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [0,2,0].
Секунда 3: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [0,1,0].
Секунда 4: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [0,0,0].
Секунда 5: Означите индекс changeIndices[5], што је означавање индекса 3, пошто је nums[3] једнако 0.
Секунда 6: Означите индекс changeIndices[6], што је означавање индекса 2, пошто је nums[2] једнако 0.
Секунда 7: Не радите ништа.
Секунда 8: Означите индекс changeIndices[8], што је означавање индекса 1, пошто је nums[1] једнако 0.
Сада су сви индекси означени.
Може се показати да није могуће означити све индексе раније од 8-ме секунде.
Стога је одговор 8.

**Пример 2:**

Улаз: nums = [1,3], changeIndices = [1,1,1,2,1,1,1]
Излаз: 6
Објашњење: У овом примеру, имамо 7 секунди. Следеће операције могу бити изведене да се означе сви индекси:
Секунда 1: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,2].
Секунда 2: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,1].
Секунда 3: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,0].
Секунда 4: Означите индекс changeIndices[4], што је означавање индекса 2, пошто је nums[2] једнако 0.
Секунда 5: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [0,0].
Секунда 6: Означите индекс changeIndices[6], што је означавање индекса 1, пошто је nums[1] једнако 0.
Сада су сви индекси означени.
Може се показати да није могуће означити све индексе раније од 6-те секунде.
Стога је одговор 6.

**Пример 3:**

Улаз: nums = [0,1], changeIndices = [2,2,2]
Излаз: -1
Објашњење: У овом примеру је немогуће означити све индексе јер индекс 1 није у changeIndices.
Стога је одговор -1.

**Ограничења:**

1 <= n == nums.length <= 2000
0 <= nums[i] <= 10^9
1 <= m == changeIndices.length <= 2000
1 <= changeIndices[i] <= n

Дате су вам две целобројне ниске индексиране од 1, nums и changeIndices, дужина n и m, респективно.
На почетку, сви индекси у nums су необележени. Ваш задатак је да обележите све индексе у nums.

У свакој секунди s, у распону од 1 до m (укључујући оба краја), можете извршити једну од следећих операција:

Изаберите индекс i у опсегу [1, n] и смањите nums[i] за 1.

Ако је nums[changeIndices[s]] једнако 0, означите индекс changeIndices[s].

Немојте ништа радити.

Вратите цео број који означава најранију секунду у опсегу [1, m] када се сви индекси у nums могу означити одабиром операција оптимално, или -1 ако је то немогуће.

Пример 1:

Улаз: nums = [2,2,0], changeIndices = [2,2,2,2,3,2,2,1]
Излаз: 8
Објашњење: У овом примеру, имамо 8 секунди. Следеће операције могу бити изведене да се означе сви индекси:
Секунда 1: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [1,2,0].
Секунда 2: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [0,2,0].
Секунда 3: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [0,1,0].
Секунда 4: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [0,0,0].
Секунда 5: Означите индекс changeIndices[5], што је означавање индекса 3, пошто је nums[3] једнако 0.
Секунда 6: Означите индекс changeIndices[6], што је означавање индекса 2, пошто је nums[2] једнако 0.
Секунда 7: Не радите ништа.
Секунда 8: Означите индекс changeIndices[8], што је означавање индекса 1, пошто је nums[1] једнако 0.
Сада су сви индекси означени.
Може се показати да није могуће означити све индексе раније од 8-ме секунде.
Стога је одговор 8.

Пример 2:

Улаз: nums = [1,3], changeIndices = [1,1,1,2,1,1,1]
Излаз: 6
Објашњење: У овом примеру имамо 7 секунди. Следеће операције се могу извршити да би се обележили сви индекси:
Секунда 1: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,2].
Секунда 2: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,1].
Секунда 3: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,0].
Секунда 4: Означите индекс changeIndices[4], што је означавање индекса 2, пошто је nums[2] једнако 0.
Секунда 5: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [0,0].
Секунда 6: Означите индекс changeIndices[6], што је означавање индекса 1, пошто је nums[1] једнако 0.
Сада су сви индекси означени.
Може се показати да није могуће означити све индексе раније од 6-те секунде.
Због тога је одговор 6.

Пример 3:

Улаз: nums = [0,1], changeIndices = [2,2,2]
Излаз: -1
Објашњење: У овом примеру је немогуће означити све индексе јер индекс 1 није у changeIndices.
Због тога је одговор -1.

Ограничења:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 10^9
1 <= m == changeIndices.length <= 2000
1 <= changeIndices[i] <= n

Дата су вам два целобројна низа са једним индексом, nums и changeIndices, са дужинама n и m, респективно.

У почетку, сви индекси у nums су неозначени. Ваш задатак је да означите све индексе у nums.

У свакој секунди, s, у опсегу од 1 до m (укључиво), можете извршити једну од следећих операција:

Изаберите индекс i у опсегу [1, n] и смањите nums[i] за 1.

Ако је nums[changeIndices[s]] једнако 0, означите индекс changeIndices[s].

Немојте ништа радити.

Вратите цео број који означава најранију секунду у опсегу [1, m] када се сви индекси у nums могу означити одабиром операција оптимално, или -1 ако је то немогуће.

Пример 1:

Улаз: nums = [2,2,0], changeIndices = [2,2,2,2,3,2,2,1]
Излаз: 8
Објашњење: У овом примеру, имамо 8 секунди. Следеће операције могу бити изведене да се означе сви индекси:
Секунда 1: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [1,2,0].
Секунда 2: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [0,2,0].
Секунда 3: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [0,1,0].
Секунда 4: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [0,0,0].
Секунда 5: Означите индекс changeIndices[5], што је означавање индекса 3, пошто је nums[3] једнако 0.
Секунда 6: Означите индекс changeIndices[6], што је означавање индекса 2, пошто је nums[2] једнако 0.
Секунда 7: Не радите ништа.
Секунда 8: Означите индекс changeIndices[8], што је означавање индекса 1, пошто је nums[1] једнако 0.
Сада су сви индекси означени.
Може се показати да није могуће означити све индексе раније од 8-ме секунде.
Стога је одговор 8.

Пример 2:

Улаз: nums = [1,3], changeIndices = [1,1,1,2,1,1,1]
Излаз: 6
Објашњење: У овом примеру, имамо 7 секунди. Следеће операције могу бити изведене да се означе сви индекси:
Секунда 1: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,2].
Секунда 2: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,1].
Секунда 3: Изаберите индекс 2 и смањите nums[2] за један. nums постаје [1,0].
Секунда 4: Означите индекс changeIndices[4], што је означавање индекса 2, пошто је nums[2] једнако 0.
Секунда 5: Изаберите индекс 1 и смањите nums[1] за један. nums постаје [0,0].
Секунда 6: Означите индекс changeIndices[6], што је означавање индекса 1, пошто је nums[1] једнако 0.
Сада су сви индекси означени.
Може се показати да није могуће означити све индексе раније од 6-те секунде.
Стога је одговор 6.

Пример 3:

Улаз: nums = [0,1], changeIndices = [2,2,2]
Излаз: -1
Објашњење: У овом примеру је немогуће означити све индексе јер индекс 1 није у changeIndices.
Стога је одговор -1.

Ограничења:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 10^9
1 <= m == changeIndices.length <= 2000
1 <= changeIndices[i] <= n


Дат је стринг word са 0 индекса и цео број k.
Сваки секунд морате да извршите следеће операције:

Уклоните првих k карактера из word.
Додајте било која k карактера на крај word.

Запазите да не морате нужно додати исте карактере које сте уклонили. Међутим, морате извршити обе операције сваке секунде.
Вратите минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 1:

Унос: word = "abacaba", k = 3
Излаз: 2
Објашњење: У првој секунди уклањамо карактере "aba" из префикса реч, и додајемо карактере "bac" на крај. Тако, реч постаје једнака "cababac".
У другој секунди уклањамо карактере "cab" из префикса реч, и додајемо "aba" на крај. Тако, реч постаје једнака "abacaba" и враћа се у почетно стање.
Може се показати да су 2 секунде минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 2:

Унос: word = "abacaba", k = 4
Излаз: 1
Објашњење: У првој секунди уклањамо карактере "abac" из префикса реч, и додајемо карактере "caba" на крај. Тако, реч постаје једнака "abacaba" и враћа се у почетно стање.
Може се показати да је 1 секунда минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 3:

Унос: word = "abcbabcd", k = 2
Излаз: 4
Објашњење: Сваке секунде ћемо уклонити прва 2 карактера из реч, и додати исте карактере на крај реч.
После 4 секунде, реч постаје једнака "abcbabcd" и враћа се у почетно стање.
Може се показати да су 4 секунде минимално време веће од нуле потребно да word врати своје почетно стање.

Ограничења:

1 <= word.length <= 50
1 <= k <= word.length
word се састоји само од малих слова енглеске абецеде.

Дат вам је 0-индексирани низ word и цео број k. Сваке секунде, морате извршити следеће операције:

Уклоните првих k карактера из низа word. Додајте било које k карактера на крај низа word.

Напомена: Нисте обавезни да додате исте карактере које сте уклонили. Међутим, морате извршити обе операције сваке секунде. Вратите минимално време веће од нуле које је потребно да се низ word врати у своје почетно стање.

Пример 1:

Унос: word = "abacaba", k = 3
Излаз: 2
Објашњење: У првој секунди уклањамо карактере "aba" из префикса реч, и додајемо карактере "bac" на крај. Тако, реч постаје једнака "cababac".
У другој секунди уклањамо карактере "cab" из префикса реч, и додајемо "aba" на крај. Тако, реч постаје једнака "abacaba" и враћа се у почетно стање.
Може се показати да су 2 секунде минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 2:

Унос: word = "abacaba", k = 4
Излаз: 1
Објашњење: У првој секунди уклањамо карактере "abac" из префикса реч, и додајемо карактере "caba" на крај. Тако, реч постаје једнака "abacaba" и враћа се у почетно стање.
Може се показати да је 1 секунда минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 3:

Унос: word = "abcbabcd", k = 2
Излаз: 4
Објашњење: Сваке секунде ћемо уклонити прва 2 карактера из реч, и додати исте карактере на крај реч.
После 4 секунде, реч постаје једнака "abcbabcd" и враћа се у почетно стање.
Може се показати да су 4 секунде минимално време веће од нуле потребно да word врати своје почетно стање.

Ограничења:

1 <= word.length <= 50
1 <= k <= word.length
word се састоји само од малих слова енглеске абецеде.

Дат је стринг word са 0 индекса и цео број k.
Сваки секунд морате да извршите следеће операције:

Уклоните првих k карактера из word.
Додајте било која k карактера на крај word.

Запазите да не морате нужно додати исте карактере које сте уклонили. Међутим, морате извршити обе операције сваке секунде.
Вратите минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 1:

Унос: word = "abacaba", k = 3
Излаз: 2
Објашњење: У првој секунди уклањамо карактере "aba" из префикса реч, и додајемо карактере "bac" на крај. Тако, реч постаје једнака "cababac".
У другој секунди уклањамо карактере "cab" из префикса реч, и додајемо "aba" на крај. Тако, реч постаје једнака "abacaba" и враћа се у почетно стање.
Може се показати да су 2 секунде минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 2:

Улаз: word = "abacaba", k = 4
Излаз: 1
Објашњење: У првој секунди уклањамо карактере "abac" из префикса реч, и додајемо карактере "caba" на крај. Тако, реч постаје једнака "abacaba" и враћа се у почетно стање.
Може се показати да је 1 секунда минимално време веће од нуле потребно да word врати своје почетно стање.

Пример 3:

Улаз: word = "abcbabcd", k = 2
Излаз: 4
Објашњење: Сваке секунде ћемо уклонити прва 2 карактера из реч, и додати исте карактере на крај реч.
После 4 секунде, реч постаје једнака "abcbabcd" и враћа се у почетно стање.
Може се показати да су 4 секунде минимално време веће од нуле потребно да word врати своје почетно стање.

Ограничења:

1 <= word.length <= 50
1 <= k <= word.length
word се састоји само од малих слова енглеске абецеде.


Дат вам је низ nums са позитивним целим бројевима, који је 0-индексиран.
Иницијално, можете повећати вредност било ког елемента у низу за највише 1.
Након тога, морате изабрати један или више елемената из коначног низа тако да ти елементи буду конзекутивни када се сортирају у растућем редоследу. На пример, елементи [3, 4, 5] су конзекутивни, док [3, 4, 6] и [1, 1, 2, 3] нису.
Вратите максималан број елемената које можете изабрати.

Пример 1:

Улаз: nums = [2,1,5,1,1]
Излаз: 3
Објашњење: Можемо повећати елементе на индексима 0 и 3. Резултујући низ је nums = [3,1,5,2,1].
Изаберемо елементе [3,1,5,2,1] и сортирамо их да добијемо [1,2,3], који су узастопни.
Може се показати да не можемо изабрати више од 3 узастопна елемента.
Пример 2:

Улаз: nums = [1,4,7,10]
Излаз: 1
Објашњење: Максималан број узастопних елемената које можемо изабрати је 1.

Ограничења:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^6

Добили сте 0-индексиран низ бројева који се састоје од позитивних целих бројева.
У почетку можете повећати вредност било којег елемента у низу за највише 1.
Након тога, морате да одаберете један или више елемената из коначног низа тако да су ти елементи узастопни када се сортирају у све већој поруџбини. На пример, елементи [3, 4, 5] су узастопни док [3, 4, 6] и [1, 1, 2, 3] нису.
Вратите максимални број елемената које можете да одаберете.

Пример 1:

Улаз: nums = [2,1,5,1,1]
Излаз: 3
Објашњење: Можемо повећати елементе на индексима 0 и 3. резултирајући низ је nums = [3,1,5,2,1]
Ми бирамо елементе [3,1,5,2,1] и сортирамо их да би се добило [1,2,3], који су узастопни.
Може се показати да не можемо да изаберемо више од 3 узастопна елемента.
Пример 2:

Улаз: nums = [1,4,7,10]
Излаз: 1
Објашњење: Максимални узастопни елементи које можемо одабрати је 1.

Ограничења:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^6

Дати су вам 0-индексиран низ nums који се састоји од позитивних целих бројева.
На почетку, можете повећати вредност било ког елемента у низу за највише 1.
Након тога, морате изабрати један или више елемената из коначног низа тако да су ти елементи узастопни када се сортирају у растућем редоследу. На пример, елементи [3, 4, 5] су узастопни, док [3, 4, 6] и [1, 1, 2, 3] нису.
Вратите максималан број елемената које можете изабрати.

Пример 1:

Улаз: nums = [2,1,5,1,1]
Излаз: 3
Објашњење: Можемо повећати елементе на индексима 0 и 3. Резултујући низ је nums = [3,1,5,2,1].
Изаберемо елементе [3,1,5,2,1] и сортирамо их да добијемо [1,2,3], који су узастопни.
Може се показати да не можемо изабрати више од 3 узастопна елемента.
Пример 2:

Улаз: nums = [1,4,7,10]
Излаз: 1
Објашњење: Максималан број узастопних елемената које можемо изабрати је 1.

Ограничења:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^6


Дат вам је низ позитивних целих бројева nums.
Треба да изаберете подскуп низа nums који задовољава следећи услов:

Можете поставити изабране елементе у низ са базом 0 тако да прати образац: [x, x^2, x^4, ..., x^k/2, x^k, x^k/2, ..., x^4, x^2, x] (Напомена да k може бити било која ненегативна степен од 2). На пример, [2, 4, 16, 4, 2] и [3, 9, 3] прате образац, док [2, 4, 8, 4, 2] не прати.

Вратите максималан број елемената у подскупу који задовољавају ове услове.

Пример 1:

Улаз: nums = [5,4,1,2,2]
Излаз: 3
Објашњење: Можемо изабрати подскуп {4,2,2}, који може бити постављен у низ као [2,4,2] који прати образац и 2^2 == 4. Стога је одговор 3.

Пример 2:

Улаз: nums = [1,3,2,4]
Излаз: 1
Објашњење: Можемо изабрати подскуп {1}, који може бити постављен у низ као [1] који прати образац. Стога је одговор 1. Напомена да смо могли изабрати и подскупове {2}, {4} или {3}, може постојати више подскупова који дају исти одговор.

Ограничења:

2 <= nums.length <= 10^5
1 <= nums[i] <= 10^9

Дат вам је низ позитивних целих бројева nums.
Потребно је изабрати подскуп nums који задовољава следећи услов:

Можете поставити изабране елементе у низ са базом 0 тако да прати образац:  [x, x^2, x^4, ..., x^k/2, x^k, x^k/2, ..., x^4, x^2, x] (Напомена да k може бити било која ненегативна степен од 2). На пример, [2, 4, 16, 4, 2] и [3, 9, 3] прате образац, док [2, 4, 8, 4, 2] не прати.

Вратите максималан број елемената у подскупу који задовољавају ове услове.

Пример 1:

Улаз: nums = [5,4,1,2,2]
Излаз: 3
Објашњење: Можемо изабрати подскуп {4,2,2}, који може бити постављен у низ као [2,4,2] који прати образац и 2^2 == 4. Дакле, одговор је 3.

Пример 2:

Улаз: nums = [1,3,2,4]
Излаз: 1
Објашњење: Можемо изабрати подскуп {1}, који може бити постављен у низ као [1] који прати образац. Стога је одговор 1. Напомена да смо могли изабрати и подскупове {2}, {4} или {3}, може постојати више подскупова који дају исти одговор.

Ограничења:

2 <= nums.length <= 10^5
1 <= nums[i] <= 10^9

Prilagođena srpska verzija:

Nemojte prevoditi LaTeX kod, programski kod, sintaksu programskih jezika ili nazive promenljivih.

Imate niz pozitivnih celih brojeva nums. Potrebno je da odaberete podskup iz nums koji zadovoljava sledeće uslove:

Odabrani elementi mogu biti poređani u 0-indeksirani niz tako da prate obrazac:
[x, x^2, x^4, \ldots, x^{k/2}, x^k, x^{k/2}, \ldots, x^4, x^2, x]
(Napomena: \(k\) može biti bilo koja nenegativna celobrojna stepen dvotke). Na primer, [2, 4, 16, 4, 2] i [3, 9, 3] prate obrazac, dok [2, 4, 8, 4, 2] ne prati.

Vratite maksimalan broj elemenata iz podskupa koji zadovoljavaju ove uslove.

Primer 1:

Ulaz:
nums = [5,4,1,2,2]
Izlaz:
3
Objašnjenje:
Možemo odabrati podskup {4, 2, 2}, koji može biti poređan u niz [2, 4, 2], što prati obrazac i 2^2 = 4. Dakle, odgovor je 3.

Primer 2:

Ulaz:
nums = [1,3,2,4]
Izlaz:
1
Objašnjenje:
Možemo odabrati podskup {1}, koji može biti poređan u niz [1], što prati obrazac. Takođe, mogli bismo odabrati podskup {2}, {4} ili {3}, jer postoji više podskupova koji daju isti odgovor.

Ograničenja:

- 2 \leq \text{nums.length} \leq 10^5
- 1 \leq \text{nums[i]} \leq 10^9


Дат је стринг s.
Размотрите извођење следеће операције док s не постане празан:

За сваки алфабетски карактер од 'a' до 'z', уклоните прво појављивање тог карактера у s (ако постоји).

На пример, ако је у почетку s = "aabcbbca". Изводимо следеће операције:

Уклоните подвучене карактере s = "aabcbbca". Резултујући стринг је s = "abbca".
Уклоните подвучене карактере s = "abbca". Резултујући стринг је s = "ba".
Уклоните подвучене карактере s = "ba". Резултујући стринг је s = "".

Вратите вредност стринга s непосредно пре последње операције. У горњем примеру, одговор је "ba".

Пример 1:

Унос: s = "aabcbbca"
Излаз: "ba"
Објашњење: Објашњено у задатку.

Пример 2:

Унос: s = "abcd"
Излаз: "abcd"
Објашњење: Изводимо следећу операцију:
- Уклоните подвучене карактере s = "abcd". Резултујући стринг је s = "".
Стринг непосредно пре последње операције је "abcd".

Ограничења:

1 <= s.length <= 5 * 10^5
s се састоји само од малих слова енглеског алфабета.

Дат је стринг s. Размотрите извођење следеће операције док s не постане празан:

За сваки алфабетски карактер од 'a' до 'z', уклоните прво појављивање тог карактера у s (ако постоји).

На пример, нека је иницијално s = "aabcbbca". Изводимо следеће операције:

Уклоните подвучене карактере s = "aabcbbca". Резултујући стринг је s = "abbca".
Уклоните подвучене карактере s = "abbca". Резултујући стринг је s = "ba".
Уклоните подвучене карактере s = "ba". Резултујући стринг је s = "".

Вратите вредност стринга s непосредно пре последње операције. У примеру изнад, одговор је "ba".

Пример 1:

Унос: s = "aabcbbca"
Излаз: "ba"
Објашњење: Објашњено у задатку.

Пример 2:

Унос: s = "abcd"
Излаз: "abcd"
Објашњење: Изводимо следећу операцију:
- Уклоните подвучене карактере s = "abcd". Резултујући стринг је s = "".
Стринг непосредно пре последње операције је "abcd".

Ограничења:

1 <= s.length <= 5 * 10^5
s се састоји само од малих слова енглеског алфабета.

Дат вам је низ с.
Размислите о извођењу следеће операције док с не постане празан:

За сваки знак од 'а' до 'з', уклоните прво појављивање тог знака у с (ако постоји).

На пример, нека је с = "аабцббца" на почетку. Вршимо следеће операције:

Уклоните доње црте са с = "аабцббца". Добијени стринг је с = "аббца".
Уклоните доње црте са = "аббца". Добијени низ је с = "ба".
Уклоните доњу црту са = "ба". Добијени низ је с = "".

Вратите вредност стринга с непосредно пре примене последње операције. У горњем примеру, одговор је "ба".

Пример 1:
Улаз: с = "аабцббца"
Излаз: "ба"
Објашњење: Објашњено у изјави.

Пример 2:

Улаз: с = "абцд"
Излаз: "абцд"
Објашњење: Изводимо следећу операцију:
Уклоните подвучене знакове са = "абцд". Добијени низ је с = "".
Низ непосредно пре последње операције је "абцд".

Ограничења:

1 <= с.дужина <= 5 * 10^5
с се састоји само од малих слова енглеског алфабета.


Дати су вам низ од низова words индексираних почевши од 0.
Дефинишимо буловску функцију isPrefixAndSuffix која узима два низа, str1 и str2:

isPrefixAndSuffix(str1, str2) враћа true ако је str1 и префикс и суфикс од str2, иначе враћа false.

На пример, isPrefixAndSuffix("aba", "ababa") је true јер је "aba" префикс од "ababa" и такође суфикс, али isPrefixAndSuffix("abc", "abcd") је false.
Вратите цео број који означава број парова индекса (i, j) тако да је i < j, и isPrefixAndSuffix(words[i], words[j]) је true.

Пример 1:

Улаз: words = ["a","aba","ababa","aa"]
Излаз: 4
Објашњење: У овом примеру бројани парови индекса су:
i = 0 и j = 1 јер isPrefixAndSuffix("a", "aba") је true.
i = 0 и j = 2 јер isPrefixAndSuffix("a", "ababa") је true.
i = 0 и j = 3 јер isPrefixAndSuffix("a", "aa") је true.
i = 1 и j = 2 јер isPrefixAndSuffix("aba", "ababa") је true.
Према томе, одговор је 4.
Пример 2:

Улаз: words = ["pa","papa","ma","mama"]
Излаз: 2
Објашњење: У овом примеру бројани парови индекса су:
i = 0 и j = 1 јер isPrefixAndSuffix("pa", "papa") је true.
i = 2 и j = 3 јер isPrefixAndSuffix("ma", "mama") је true.
Према томе, одговор је 2.
Пример 3:

Улаз: words = ["abab","ab"]
Излаз: 0
Објашњење: У овом примеру, једини ваљни пар индекса је i = 0 и j = 1, и isPrefixAndSuffix("abab", "ab") је false.
Према томе, одговор је 0.

Ограничења:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] се састоји само од малих енглеских слова.

Дат вам је 0-индексирани низ низова words.
Дефинисаћемо буловску функцију isPrefixAndSuffix која узима два низа, str1 и str2:

isPrefixAndSuffix(str1, str2) враћа true ако је str1 и префикс и суфикс од str2, иначе враћа false.

На пример, isPrefixAndSuffix("aba", "ababa") је true јер је "aba" префикс од "ababa" и такође суфикс, али isPrefixAndSuffix("abc", "abcd") је false.
Вратите цео број који означава број парова индекса (i, j) тако да је i < j, и isPrefixAndSuffix(words[i], words[j]) је true.

Пример 1:

Улаз: words = ["a","aba","ababa","aa"]
Излаз: 4
Објашњење: У овом примеру бројани парови индекса су:
i = 0 и j = 1 јер isPrefixAndSuffix("a", "aba") је true.
i = 0 и j = 2 јер isPrefixAndSuffix("a", "ababa") је true.
i = 0 и j = 3 јер isPrefixAndSuffix("a", "aa") је true.
i = 1 и j = 2 јер isPrefixAndSuffix("aba", "ababa") је true.
Према томе, одговор је 4.
Пример 2:

Улаз: words = ["pa","papa","ma","mama"]
Излаз: 2
Објашњење: У овом примеру бројани парови индекса су:
i = 0 и j = 1 јер isPrefixAndSuffix("pa", "papa") је true.
i = 2 и j = 3 јер isPrefixAndSuffix("ma", "mama") је true.
Према томе, одговор је 2.
Пример 3:

Улаз: words = ["abab","ab"]
Излаз: 0
Објашњење: У овом примеру, једини важећи пар индекса је i = 0 и j = 1, и isPrefixAndSuffix("abab", "ab") је false.
Према томе, одговор је 0.

Ограничења:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] се састоји само од малих енглеских слова.

Дати су вам низ од стрингова words индексираних почевши од 0.
Дефинишимо буловску функцију isPrefixAndSuffix која узима два стринга, str1 и str2:

isPrefixAndSuffix(str1, str2) враћа true ако је str1 и префикс и суфикс од str2, иначе враћа false.

На пример, isPrefixAndSuffix("aba", "ababa") је true јер је "aba" префикс од "ababa" и такође суфикс, али isPrefixAndSuffix("abc", "abcd") је false.
Вратите цео број који означава број парова индекса (i, j) тако да је i < j, и isPrefixAndSuffix(words[i], words[j]) је true.

Пример 1:

Улаз: words = ["a","aba","ababa","aa"]
Излаз: 4
Објашњење: У овом примеру бројани парови индекса су:
i = 0 и j = 1 јер isPrefixAndSuffix("a", "aba") је true.
i = 0 и j = 2 јер isPrefixAndSuffix("a", "ababa") је true.
i = 0 и j = 3 јер isPrefixAndSuffix("a", "aa") је true.
i = 1 и j = 2 јер isPrefixAndSuffix("aba", "ababa") је true.
Према томе, одговор је 4.
Пример 2:

Улаз: words = ["pa","papa","ma","mama"]
Излаз: 2
Објашњење: У овом примеру бројани парови индекса су:
i = 0 и j = 1 јер isPrefixAndSuffix("pa", "papa") је true.
i = 2 и j = 3 јер isPrefixAndSuffix("ma", "mama") је true.
Према томе, одговор је 2.
Пример 3:

Улаз: words = ["abab","ab"]
Излаз: 0
Објашњење: У овом примеру, једини важећи пар индекса је i = 0 и j = 1, и isPrefixAndSuffix("abab", "ab") је false.
Према томе, одговор је 0.

Ограничења:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] se sastoji samo od malih latiničnih slova.


Мрав је на граници. Понекад иде лево, а понекад десно.
Добијате низ целих бројева који нису нула. Мрав почиње да чита бројеве од првог елемента до краја. У сваком кораку се креће према вредности тренутног елемента:

Ако nums[i] < 0, он се помера лево за -nums[i] јединице. Ако nums[i] > 0, помера се десно за nums[i] јединице.

Вратите колико пута се мрав враћа на границу.
Белешке:

Постоји бесконачан простор са обе стране границе.
Проверавамо да ли је мрав на граници тек након што се помери |nums[i]| Јединице. Другим речима, ако мрав пређе границу током свог кретања, то се не рачуна.

Пример 1:

Улаз : nums = [2,3,-5]
излаз : 1
Објашњење : Након првог корака, мрав је 2 корака десно од границе.
Након другог корака, мрав је 5 корака десно од границе.
Након трећег корака, мрав је на граници.
Дакле , одговор је 1.

Пример 2:

Улаз : nums= [3,2,-3,-4]
излаз : 0
Објашњење : Након првог корака, мрав је 3 корака десно од границе.
Након другог корака, мрав је 5 корака десно од границе.
Након трећег корака, мрав је 2 корака десно од границе.
Након четвртог корака, мрав је 2 корака лево од границе.
Мрав се никада није вратио на границу, тако да је одговор 0.

Ограничења:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0

Mrav je na granici. Ponekad ide levo, a ponekad desno.
Dat vam je niz nenultih celih brojeva `nums`. Mrav počinje da čita `nums` od prvog elementa do kraja. Na svakom koraku pomera se u skladu sa vrednošću trenutnog elementa:

Ako je `nums[i] < 0`, pomera se ulevo za `-nums[i]` jedinica.
 Ako je `nums[i] > 0`, pomera se udesno za `nums[i]` jedinica.

Вратите број пута када се мрав врати на границу.
Напомене:

Prostor sa obe strane granice je beskonačan.
Proveravamo da li je mrav na granici tek nakon što se pomerio za `|nums[i]|` jedinica. Drugim rečima, ako mrav pređe granicu tokom svog pomeranja, to se ne računa.

Пример 1:

Улаз: nums = [2,3,-5]
Излаз: 1
Објашњење: Након првог корака, мрав је 2 корака десно од границе.
Након другог корака, мрав је 5 корака десно од границе.
Након трећег корака, мрав је на граници.
Дакле, одговор је 1.

Пример 2:

Улаз: nums = [3,2,-3,-4]
Излаз: 0
Објашњење: Након првог корака, мрав је 3 корака десно од границе.
Након другог корака, мрав је 5 корака десно од границе.
Након трећег корака, мрав је 2 корака десно од границе.
Након четвртог корака, мрав је 2 корака лево од границе.
Мрав се никада није вратио на границу, тако да је одговор 0.

Ограничења:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0

Једна мрава је на ивици. Понекад иде лево, а понекад десно.
Дат вам је низ различитих целих бројева nums. Мрава почиње да чита nums од првог елемента па све до краја. У сваком кораку, она се помера према вредности тренутног елемента:

- Ако је nums[i] < 0, она се помера лево за -nums[i] јединица.
- Ако је nums[i] > 0, она се помера десно за nums[i] јединица.

Вратите број пута када се мрава врати на ивицу.

Напомене:

Постоји бесконачан простор на обе стране границе.
Проверавамо да ли је мрав на граници тек након што се померио |nums[i]| јединица. Другим речима, ако мрав пређе границу током свог кретања, то се не рачуна.

Пример 1:

Улаз: nums = [2,3,-5]
Излаз: 1
Објашњење: Након првог корака, мрав је 2 корака десно од границе.
Након другог корака, мрав је 5 корака десно од границе.
Након трећег корака, мрав је на граници.
Дакле, одговор је 1.

Пример 2:

Улаз: nums = [3,2,-3,-4]
Излаз: 0
Објашњење: Након првог корака, мрав је 3 корака десно од границе.
Након другог корака, мрав је 5 корака десно од границе.
Након трећег корака, мрав је 2 корака десно од границе.
Након четвртог корака, мрав је 2 корака лево од границе.
Мрав се никада није вратио на границу, тако да је одговор 0.

Ограничења:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0


Дат вам је низ s који је укуцао корисник, са 0-индексираним позицијама. Промена тастера се дефинише као коришћење тастера различитог од последњег коришћеног тастера. На пример, s = "ab" има промену тастера, док s = "bBBb" нема ниједну.

Вратите број пута када је корисник морао да промени тастер.
Напомена: Модификатори као што су shift или caps lock неће се рачунати као промена тастера, то јест, ако корисник укуца слово 'a', а затим слово 'A', то неће бити сматрано као промена тастера.

Пример 1:

Улаз: s = "aAbBcC"
Излаз: 2
Објашњење:
Од s[0] = 'a' до s[1] = 'A', нема промене тастера јер caps lock или shift се не рачунају.
Од s[1] = 'A' до s[2] = 'b', постоји промена тастера.
Од s[2] = 'b' до s[3] = 'B', нема промене тастера јер caps lock или shift се не рачунају.
Од s[3] = 'B' до s[4] = 'c', постоји промена тастера.
Од s[4] = 'c' до s[5] = 'C', нема промене тастера јер caps lock или shift се не рачунају.

Пример 2:

Улаз: s = "AaAaAaaA"
Излаз: 0
Објашњење: Нема промене тастера јер су притиснуте само слова 'a' и 'A', што не захтева промену тастера.

Ограничења:

1 <= s.length <= 100
s се састоји само од великих и малих енглеских слова.

Дат је вам стринг на 0 индексираним упису који је уписао корисник. Промјена кључа је дефинисана као коришћење кључа другачије од последњег коришћеног кључа. На пример, s = "ab" има промену кључа док s = "bBBb" нема ниједног.
Вратите број пута када је корисник морао да промени кључ.
Напомена: Модификатори попут смене или капице за закључавање неће се рачунати у промјени кључа који је ако юе корисник унео слово 'a', а затим слово 'A', то се неће сматрати мењањем кључа

Пример 1:

Улаз: s = "aAbBcC"
Излаз: 2
Објашњење:
Од s[0] = 'а' до s[1] = 'А', не постоји промена кључа јер се закључавање капица не рачуна.
Од s [1] = 'A' то s [2] = 'b', постоји промена кључа.
Од s [2] = 'b' то s [3] = 'B', не постоји промена кључа као закључавање капица или смена се не рачуна.
Од s [3] = 'B' то s [4] = 'c', постоји промена кључа.
Од s [4] = 'c' до s [5] = 'C', не постоји промена кључа јер се закључавање капица или померања не рачуна.

Пример 2:

Улаз: s = "AaAaAaaA"
Излаз: 0
Објашњење: Нема промене кључа, јер се притиска само слова "А" и "А" која не захтева промену кључа.

Ограничења:

1 <= s.length <= 100
s састоји се од само великих и малих слова енглеског слова.

Дат вам је низ s који је унео корисник. Промена тастера се дефинише као коришћење тастера који се разликује од последњег коришћеног тастера. На пример, ако је s = "ab", онда постоји промена тастера, док ако је s = "bBBb", онда нема промена тастера.
Вратите број пута када је корисник морао да промени тастер.
Напомена: Модификатори као што су shift или caps lock неће бити рачунати као промена тастера, што значи да ако корисник уђе слово 'a', а затим слово 'A', то се неће сматрати променом тастера.

Пример 1:

Улаз: s = "aAbBcC"
Излаз: 2
Објашњење:
Од s[0] = 'a' до s[1] = 'A', нема промене тастера јер caps lock или shift се не рачунају.
Од s[1] = 'A' до s[2] = 'b', постоји промена тастера.
Од s[2] = 'b' до s[3] = 'B', нема промене тастера јер caps lock или shift се не рачунају.
Од s[3] = 'B' до s[4] = 'c', постоји промена тастера.
Од s[4] = 'c' до s[5] = 'C', нема промене тастера јер caps lock или shift се не рачунају.

Пример 2:

Улаз: s = "AaAaAaaA"
Излаз: 0
Објашњење: Нема промене тастера пошто су притиснута само слова 'a' и 'A' што не захтева промену тастера.

Ограничења:

1 <= s.length <= 100
s се састоји само од великих и малих енглеских слова.


Дат је низ стрингова words са индексом 0, дужине n и садржи стрингове са индексом 0. Дозвољено вам је да извршите следећу операцију било који број пута (укључујући нулу):

Изаберите целе бројеве i, j, x и y тако да је 0 <= i, j < n, 0 <= x < words[i].length, 0 <= y < words[j].length, и замените карактере words[i][x] и words[j][y].

Вратите цео број који означава максималан број палиндрома које words може да садржи након извођења неких операција.
Напомена: i и j могу бити једнаки током операције.

Пример 1:

Улаз: words = ["abbb","ba","aa"]
Излаз: 3
Објашњење: У овом примеру, један начин да се добије максималан број палиндрома је:
Изаберите i = 0, j = 1, x = 0, y = 0, тако да заменимо words[0][0] и words[1][0]. words постаје ["bbbb","aa","aa"].
Сви стрингови у words су сада палиндроми.
Дакле, максималан број палиндрома који се може добити је 3.

Пример 2:

Улаз: words = ["abc","ab"]
Излаз: 2
Објашњење: У овом примеру, један начин да се добије максималан број палиндрома је:
Изаберите i = 0, j = 1, x = 1, y = 0, тако да заменимо words[0][1] и words[1][0]. words постаје ["aac","bb"].
Изаберите i = 0, j = 0, x = 1, y = 2, тако да заменимо words[0][1] и words[0][2]. words постаје ["aca","bb"].
Оба стринга су сада палиндроми.
Дакле, максималан број палиндрома који се може добити је 2.

Пример 3:

Улаз: words = ["cd","ef","a"]
Излаз: 1
Објашњење: У овом примеру, нема потребе за извођењем било које операције.
Постоји један палиндром у words "a".
Може се показати да није могуће добити више од једног палиндрома након било ког броја операција.
Дакле, одговор је 1.

Ограничења:

1 <= words.length <= 1000
1 <= words[i].length <= 100
words[i] се састоји само од малих слова енглеске абецеде.

Дат вам је низ нула-индикованих стрингова "words" дужине n, који садржи нула-индиковане стрингове.
Дозвољено вам је да изведете следећу операцију било који број пута (укључујући нулу):

Изаберите целе бројеве i, j, x и y тако да је 0 <= i, j < n, 0 <= x < words[i].length, 0 <= y < words[j].length, и замените карактере words[i][x] и words[j][y].

Вратите цео број који означава максималан број палиндрома које words може да садржи након извођења неких операција.
Напомена: i и j могу бити једнаки током операције.

Пример 1:

Улаз: words = ["abbb","ba","aa"]
Излаз: 3
Објашњење: У овом примеру, један начин да се добије максималан број палиндрома је:
Изаберите i = 0, j = 1, x = 0, y = 0, тако да заменимо words[0][0] и words[1][0]. words постаје ["bbbb","aa","aa"].
Сви стрингови у words су сада палиндроми.
Дакле, максималан број палиндрома који се може добити је 3.

Пример 2:

Улаз: words = ["abc","ab"]
Излаз: 2
Објашњење: У овом примеру, један начин да се добије максималан број палиндрома је:
Изаберите i = 0, j = 1, x = 1, y = 0, тако да заменимо words[0][1] и words[1][0]. words постаје ["aac","bb"].
Изаберите i = 0, j = 0, x = 1, y = 2, тако да заменимо words[0][1] и words[0][2]. words постаје ["aca","bb"].
Оба стринга су сада палиндроми.
Дакле, максималан број палиндрома који се може добити је 2.

Пример 3:

Улаз: words = ["cd","ef","a"]
Излаз: 1
Објашњење: У овом примеру, нема потребе за извођењем било које операције.
Постоји један палиндром у words "a".
Може се показати да није могуће добити више од једног палиндрома након било ког броја операција.
Дакле, одговор је 1.

Ограничења:

1 <= words.length <= 1000
1 <= words[i].length <= 100
words[i] се састоји само од малих слова енглеске абецеде.

Дат је низ стрингова words са индексом 0, дужине n и садржи стрингове са индексом 0. Дозвољено вам је да извршите следећу операцију било који број пута (укључујући нулу):

Изаберите целе бројеве i, j, x и y тако да је 0 <= i, j < n, 0 <= x < words[i].length, 0 <= y < words[j].length, и замените карактере words[i][x] и words[j][y].

ВВратите цео број који представља максималан број палиндрома које реч words може садржати, након извођења одређених операција.
Напомена: i  и j могу бити једнаки током једне операције.

Пример 1:

Улаз: words = ["abbb","ba","aa"]
Излаз: 3
Објашњење: У овом примеру, један начин да се добије максималан број палиндрома је:
Изаберите i = 0, j = 1, x = 0, y = 0, тако да заменимо words[0][0] и words[1][0]. words постаје ["bbbb","aa","aa"].
Сви стрингови у words су сада палиндроми.
Дакле, максималан број палиндрома који се може добити је 3.

Пример 2:

Улаз: words = ["abc","ab"]
Излаз: 2
Објашњење: У овом примеру, један начин да се добије максималан број палиндрома је:
Изаберите i = 0, j = 1, x = 1, y = 0, тако да заменимо words[0][1] и words[1][0]. words постаје ["aac","bb"].
Изаберите i = 0, j = 0, x = 1, y = 2, тако да заменимо words[0][1] и words[0][2]. words постаје ["aca","bb"].
Оба стринга су сада палиндроми.
Дакле, максималан број палиндрома који се може добити је 2.

Пример 3:

Улаз: words = ["cd","ef","a"]
Излаз: 1
Објашњење: У овом примеру, нема потребе за извођењем било које операције.
Постоји један палиндром у words "a".
Може се показати да није могуће добити више од једног палиндрома након било ког броја операција.
Дакле, одговор је 1.

Ограничења:

1 <= words.length <= 1000
1 <= words[i].length <= 100
words[i] се састоји само од малих слова енглеске абецеде.


Дат вам је низ целих бројева под називом nums, и можете извршити следећу операцију док nums садржи најмање 2 елемента:

Изаберите прва два елемента из nums и уклоните их.

Резултат операције је збир уклоњених елемената.
Ваш задатак је да пронађете максималан број операција које се могу извршити, тако да све операције имају исти резултат.
Вратите максималан број операција који задовољава горе наведени услов.

Пример 1:

Улаз: nums = [3,2,1,4,5]
Излаз: 2
Објашњење: Извршавамо следеће операције:
- Обриши прва два елемента, са резултатом 3 + 2 = 5, nums = [1,4,5].
- Обриши прва два елемента, са резултатом 1 + 4 = 5, nums = [5].
Не можемо извршити више операција јер nums садржи само 1 елемент.

Пример 2:

Улаз: nums = [3,2,6,1,4]
Излаз: 1
Објашњење: Извршавамо следеће операције:
- Обриши прва два елемента, са резултатом 3 + 2 = 5, nums = [6,1,4].
Не можемо извршити више операција јер резултат следеће операције није исти као претходни.

Ограничења:

2 <= nums.length <= 100
1 <= nums[i] <= 1000

С обзиром на низ целих бројева који се називају нумс, можете извршити следећу операцију док нумс садржи најмање 2 елемента:

Одаберите прва два елемента нумс и обришите их.

Резултат операције је збир избрисаних елемената.
Ваш задатак је да пронађете максималан број операција које се могу извести, тако да све операције имају исти резултат.
Врати максималан број могућих операција које задовољавају горе поменути услов.

Пример 1:

Улаз: nums = [3,2,1,4,5]
Излаз: 2
Објашњење: Вршимо следеће операције:
- Избришите прва два елемента, са резултатом 3 + 2 = 5, nums = [1,4,5].
- Избришите прва два елемента, са резултатом 1 + 4 = 5, nums = [5].
Нисмо у могућности да извршимо више операција јер бројеви садрже само 1 елемент.
Пример 2:

Улаз: nums = [3,2,6,1,4]
Излаз: 1
Објашњење: Вршимо следеће операције:
- Избришите прва два елемента, са резултатом 3 + 2 = 5, nums = [6,1,4].
Нисмо у могућности да извршимо више операција јер резултат следеће операције није исти као претходне.

Ограничења:

2 <= nums.length <= 100
1 <= nums[i] <= 1000

Дат је низ целих бројева који се зове nums, можете извршити следећу операцију док nums садржи најмање 2 елемента:

Изаберите прва два елемента из nums и обришите их.

Резултат операције је збир обрисаних елемената.
Ваш задатак је да пронађете максималан број операција које могу бити извршене, тако да све операције имају исти резултат.
Вратите максималан број могућих операција које задовољавају поменути услов.

Пример 1:

Улаз: nums = [3,2,1,4,5]
Излаз: 2
Објашњење: Извршавамо следеће операције:
- Обриши прва два елемента, са резултатом 3 + 2 = 5, nums = [1,4,5].
- Обриши прва два елемента, са резултатом 1 + 4 = 5, nums = [5].
Не можемо извршити више операција јер nums садржи само 1 елемент.

Пример 2:

Улаз: nums = [3,2,6,1,4]
Излаз: 1
Објашњење: Извршавамо следеће операције:
- Обриши прва два елемента, са резултатом 3 + 2 = 5, nums = [6,1,4].
Не можемо извршити више операција јер резултат следеће операције није исти као претходни.

Ограничења:

2 <= nums.length <= 100
1 <= nums[i] <= 1000


Дат вам је низ целих бројева nums парне дужине. Треба да поделите низ на два дела nums1 и nums2 тако да:

nums1.length == nums2.length == nums.length / 2.
nums1 треба да садржи различите елементе.
nums2 такође треба да садржи различите елементе.

Вратите true ако је могуће поделити низ, иначе вратите false.

Пример 1:

Input: nums = [1,1,2,2,3,4]
Output: true
Објашњење: Један од могућих начина да се подели nums је nums1 = [1,2,3] и nums2 = [1,2,4].

Пример 2:

Input: nums = [1,1,1,1]
Output: false
Објашњење: Једини могући начин да се подели nums је nums1 = [1,1] и nums2 = [1,1]. И nums1 и nums2 не садрже различите елементе. Зато враћамо false.

Ограничења:

1 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100

Добили сте низ целих бројева парне дужине. Морате да поделите низ у два дела нумерима1 и нумс2 тако да:

нумс1.length == nums2.length == nums.length / 2.
nums1 треба да садржи различите елементе.
nums2 такође треба да садржи различите елементе.

Вратите true ако је могуће поделити низ и лажно у супротном.

Пример 1:

Улаз: nums = [1,1,2,2,3,4]
Излаз: true
Објашњење: Један од могућих начина да се подели низ је nums1 = [1,2,3] и nums2 = [1,2,4].

Пример 2:

Улаз: nums = [1,1,1,1]
Излаз: false
Објашњење: Једини могући начин да се подели број је nums1 = [1,1] и nums2 = [1,1]. И nums1 и nums2 не садрже различите елементе. Стога враћамо false.

Ограничења:

1 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100

Дат вам је низ целих бројева парне дужине. Морате да поделите низ на два дела nums1 и nums2 тако да:

nums1.length == nums2.length == nums.length / 2.
nums1 треба да садржи различите елементе.
nums2 такође треба да садржи различите елементе.

Вратите труе ако је могуће поделити низ и фалсе у супротном.

Пример 1:

Улаз: nums = [1,1,2,2,3,4]
Излаз: true
Објашњење: Један од могућих начина да поделите бројеве је nums1 = [1,2,3] и nums2 = [1,2,4].

Пример 2:

Улаз: nums = [1,1,1,1]
Излаз: false
Објашњење: Једини могући начин да поделите бројеве је nums1 = [1,1] и nums2 = [1,1]. И nums1 и nums2 не садрже различите елементе. Зато враћамо false.

Ограничења:

1 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100


Дат вам је два низа са позитивним целим бројевима arr1 и arr2.
Префикс позитивног целог броја је цео број који се формира од једне или више његових цифара, почевши од најлевље цифре. На пример, 123 је префикс броја 12345, док 234 није.
За два цела броја a и b, заједнички префикс је цео број c који је префикс оба броја a и b. На пример, 5655359 и 56554 имају заједнички префикс 565, док 1223 и 43456 немају заједнички префикс.
Треба да пронађете дужину најдужег заједничког префикса између свих парова целих бројева (x, y) где x припада arr1, а y припада arr2.
Вратите дужину најдужег заједничког префикса међу свим паровима. Ако не постоји заједнички префикс међу њима, вратите 0.

Пример 1:

Input: arr1 = [1,10,100], arr2 = [1000]
Output: 3
Објашњење: Постоје 3 пара (arr1[i], arr2[j]):
- Најдужи заједнички префикс од (1, 1000) је 1.
- Најдужи заједнички префикс од (10, 1000) је 10.
- Најдужи заједнички префикс од (100, 1000) је 100.
Најдужи заједнички префикс је 100 са дужином од 3.

Пример 2:

Input: arr1 = [1,2,3], arr2 = [4,4,4]
Output: 0
Објашњење: Не постоји заједнички префикс ни за један пар (arr1[i], arr2[j]), стога враћамо 0.
Напомена да заједнички префикси између елемената истог низа се не рачунају.

Ограничења:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8

Добијате два низа са позитивним целим бројевима arr1 и arr2.
Префикс позитивног целог броја је цео број формиран од једне или више његових цифара, почевши од његове крајње леве цифре. На пример, 123 је префикс целог броја 12345, док 234 није.
Заједнички префикс два цела броја a и b је цео број c, такав да је c префикс и броја a и броја b. На пример, 5655359 и 56554 имају заједнички префикс 565, док 1223 и 43456 немају заједнички префикс.
Морате пронаћи дужину најдужег заједничког префикса између свих парова целих бројева (x, y) тако да к припада arr1, а и припада arr2.
Врати дужину најдужег заједничког префикса међу свим паровима. Ако међу њима не постоји заједнички префикс, вратите 0.

Пример 1:

Улаз: arr1 = [1,10,100], arr2 = [1000]
Излаз: 3
Објашњење: Постоје 3 пара (arr1[и], arr2[ј]):
- Најдужи заједнички префикс од (1, 1000) је 1.
- Најдужи заједнички префикс од (10, 1000) је 10.
- Најдужи заједнички префикс од (100, 1000) је 100.
Најдужи заједнички префикс је 100 са дужином од 3.

Пример 2:

Улаз:  arr1 = [1,2,3], arr2 = [4,4,4]
Излаз: 0
Објашњење: Не постоји заједнички префикс за било који пар (arr1[и], arr2[ј]), стога враћамо 0.
Имајте на уму да се уобичајени префикси између елемената истог низа не рачунају.

Ограничења:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8

Добијате два низа са позитивним целим бројевима arr1 и arr2.
Префикс позитивног целог броја је цео број формиран од једне или више његових цифара, почевши од крајње леве цифре. На пример, 123 је префикс целог броја 12345, док 234 није.
Заједнички префикс два цела броја а и б је цео број ц, тако да је ц префикс и а и б. На пример, 5655359 и 56554 имају заједнички префикс 565, док 1223 и 43456 немају заједнички префикс.
Потребно је да пронађете дужину најдужег заједничког префикса између свих парова целих бројева (x, y) тако да x припада arr1 и y припада arr2.
Враћа дужину најдужег заједничког префикса међу свим паровима. Ако не постоји заједнички префикс међу њима, вратите 0.

Пример 1:

Улаз : arr1 = [1,10,100], arr2 = [1000]
излаз : 3
Објашњење : Постоје 3 пара (arr1[и], arr2[ј]):
- Најдужи заједнички префикс (1.1000) је 1.
- Најдужи заједнички префикс (10, 1000) је 10.
- Најдужи заједнички префикс (100, 1000) је 100.
Најдужи заједнички префикс је 100 са дужином од 3.

Пример 2:

Улаз : arr1 = [1,2,3], arr2 = [4,4,4]
излаз : 0
Објашњење : Не постоји заједнички префикс за било који пар (arr1[i], arr2[j]), стога враћамо 0.
Приметите да се заједнички префикси између елемената истог низа не рачунају.

Ограничења:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8


Дат вам је низ целих бројева nums и цели број k.
У једној операцији, можете уклонити једно појављивање најмањег елемента из низа nums.
Вратите минималан број операција потребних тако да сви елементи низа буду већи или једнаки k.

Пример 1:

Улаз: nums = [2,11,10,1,3], k = 10
Излаз: 3
Објашњење: Након једне операције, nums постаје једнако [2, 11, 10, 3].
Након две операције, nums постаје једнако [11, 10, 3].
Након три операције, nums постаје једнако [11, 10].
У овом тренутку сви елементи nums су већи од или једнаки 10, тако да можемо стати.
Може се показати да је 3 минималан број операција потребан да би сви елементи низа били већи од или једнаки 10.

Пример 2:

Улаз: nums = [1,1,2,4,9], k = 1
Излаз: 0
Објашњење: Сви елементи низа су већи или једнаки 1, па не морамо примењивати никакве операције на nums.

Пример 3:

Улаз: nums = [1,1,2,4,9], k = 9
Излаз: 4
Објашњење: Само један елемент из nums је већи или једнак 9, тако да морамо применити операције 4 пута на nums.

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 10^9
1 <= k <= 10^9
Улаз је генерисан тако да постоји бар један индекс i такав да nums[i] >= k.

Дат вам је 0-индексиран низ бројева и цео број k.
У једној операцији можете уклонити једно појављивање најмањег елемента бројева.
Врати минимални број потребних операција да сви елементи низа буду већи или једнаки k.

Пример 1:

Улаз: nums = [2,11,10,1,3], k = 10
Излаз: 3
Објашњење: После једне операције, nums постају једнаки [2, 11, 10, 3].
После две операције операције, нумс постаје једнак [11, 10, 3].
После три операције, нумс постаје једнак [11, 10].
У овој фази, сви елементи бројева су већи или једнаки 10 тако да можемо престати.
Може се показати да је 3 минимални број операција.

Пример 2:

Улаз: nums = [1,1,2,4,9], k = 1
Излаз: 0
Објашњење: Сви елементи низа су већи или једнаки 1 тако да не морамо да примењујемо ниједне операције на бројеве.
Пример 3:

Улаз: nums = [1,1,2,4,9], k = 9
Излаз: 4
Објашњење: само један елемент бројева је већи или једнак 9, тако да морамо да применимо операције 4 пута на бројеве.

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 10^9
1 <= k <= 10^9
Улаз се генерише тако да постоји бар један индекс i такав да је nums[i] >= k.

Дат вам је 0-индексиран низ бројева бројева и цео број к.
У једној операцији можете уклонити једно појављивање најмањег елемента бројева.
Врати минимални број потребних операција да сви елементи низа буду већи или једнаки к.

Пример 1:

Улаз: nums = [2,11,10,1,3], k = 10
Излаз: 3
Објашњење: После једне операције, бројеви постају једнаки [2, 11, 10, 3].
После две операције, нумс постаје једнак [11, 10, 3].
После три операције, нумс постаје једнак [11, 10].
У овој фази, сви елементи бројева су већи или једнаки 10, тако да можемо стати.
Може се показати да је 3 минимални број потребних операција да би сви елементи низа били већи или једнаки 10.

Пример 2:

Улаз: nums = [1,1,2,4,9], k = 1
Излаз: 0
Објашњење: Сви елементи низа су већи или једнаки 1 тако да не морамо да примењујемо никакве операције на бројеве.
Пример 3:

Улаз: nums = [1,1,2,4,9], k = 9
Излаз: 4
Објашњење: само један елемент бројева је већи или једнак 9, тако да морамо да применимо операције 4 пута на нумс.

Ограничења:

1 <= nums.length <= 50
1 <= nums[i] <= 10^9
1 <= k <= 10^9
Улаз се генерише тако да постоји бар један индекс i такав да је nums[i] >= k.


Имате 1-индексни низ различитих целих бројева nums дужине n. Потребно је да распоредите све елементе из nums између два низа arr1 и arr2 користећи n операција. У првој операцији, додајте nums[1] у arr1. У другој операцији, додајте nums[2] у arr2. Након тога, у i-тој операцији:

Ако је последњи елемент arr1 већи од последњег елемента arr2, додајте nums[i] у arr1. У супротном, додај nums[i] у arr2.

Низ result се формира конкатенацијом низова arr1 и arr2. На пример, ако је arr1 == [1,2,3] и arr2 == [4,5,6], онда је result = [1,2,3,4,5,6]. Вратите низ result.

Пример 1:

Улаз: nums = [2,1,3]
Излаз: [2,3,1]
Објашњење: Након прве 2 операције, arr1 = [2] и arr2 = [1].
У 3-ћој операцији, како је последњи елемент arr1 већи од последњег елемента arr2 (2 > 1), додајте nums[3] у arr1.
Након 3 операције, arr1 = [2,3] и arr2 = [1].
Дакле, низ result формиран конкатенацијом је [2,3,1].

Пример 2:

Улаз: nums = [5,4,3,8]
Излаз: [5,3,4,8]
Објашњење: Након прве 2 операције, arr1 = [5] и arr2 = [4].
У 3-ћој операцији, како је последњи елемент arr1 већи од последњег елемента arr2 (5 > 4), додајте nums[3] у arr1, тада arr1 постаје [5,3].
У 4-ој операцији, како је последњи елемент arr2 већи од последњег елемента arr1 (4 > 3), додајте nums[4] у arr2, тада arr2 постаје [4,8].
Након 4 операције, arr1 = [5,3] и arr2 = [4,8].
Дакле, низ result формиран конкатенацијом је [5,3,4,8].

Ограничења:

3 <= n <= 50
1 <= nums[i] <= 100
Сви елементи у nums су различити.

Имаш 1-индексни низ различитих целих бројева nums дужине n. Потребно је да распоредиш све елементе из nums између два низа arr1 и arr2 користећи n операција. У првој операцији, додај nums[1] у arr1. У другој операцији, додај nums[2] у arr2. Након тога, у i-тој операцији:

Ако је последњи елемент arr1 већи од последњег елемента arr2, додај nums[i] у arr1. У супротном, додај nums[i] у arr2.

Низ result се формира конкатенацијом низова arr1 и arr2. На пример, ако је arr1 == [1,2,3] и arr2 == [4,5,6], онда је result = [1,2,3,4,5,6]. Врати низ result.

Пример 1:

Унос: nums = [2,1,3]
Излаз: [2,3,1]
Објашњење: Након прве 2 операције, arr1 = [2] и arr2 = [1].
У 3-ћој операцији, како је последњи елемент arr1 већи од последњег елемента arr2 (2 > 1), додај nums[3] у arr1.
Након 3 операције, arr1 = [2,3] и arr2 = [1].
Стога, низ result формиран конкатенацијом је [2,3,1].

Пример 2:

Унос: nums = [5,4,3,8]
Излаз: [5,3,4,8]
Објашњење: Након прве 2 операције, arr1 = [5] и arr2 = [4].
У 3-ћој операцији, како је последњи елемент arr1 већи од последњег елемента arr2 (5 > 4), додај nums[3] у arr1, тада arr1 постаје [5,3].
У 4-ој операцији, како је последњи елемент arr2 већи од последњег елемента arr1 (4 > 3), додај nums[4] у arr2, тада arr2 постаје [4,8].
Након 4 операције, arr1 = [5,3] и arr2 = [4,8].
Стога, низ result формиран конкатенацијом је [5,3,4,8].

Ограничења:

3 <= n <= 50
1 <= nums[i] <= 100
Сви елементи у nums су различити.

Дат вам је низ различитих целих бројева nums дужине n који је 1-индексиран.

Треба да распоредите све елементе низа nums између два низа arr1 и arr2 користећи n операција. У првој операцији додајте nums[1] у arr1. У другој операцији додајте nums[2] у arr2. Након тога, у i-тој операцији:

Ако је последњи елемент arr1 већи од последњег елемента arr2, додајте nums[i] у arr1. У супротном, додајте nums[i] у arr2.
Низ result се формира спајањем низова arr1 и arr2. На пример, ако је arr1 == [1,2,3] и arr2 == [4,5,6], онда је result = [1,2,3,4,5,6].
Вратите низ result.

Пример 1:

Унос: nums = [2,1,3]
Излаз: [2,3,1]
Објашњење: Након прве 2 операције, arr1 = [2] и arr2 = [1].
У 3-ћој операцији, како је последњи елемент arr1 већи од последњег елемента arr2 (2 > 1), додај nums[3] у arr1.
Након 3 операције, arr1 = [2,3] и arr2 = [1].
Стога, низ result формиран конкатенацијом је [2,3,1].

Пример 2:

Унос: nums = [5,4,3,8]
Излаз: [5,3,4,8]
Објашњење: Након прве 2 операције, arr1 = [5] и arr2 = [4].
У 3-ћој операцији, како је последњи елемент arr1 већи од последњег елемента arr2 (5 > 4), додај nums[3] у arr1, тада arr1 постаје [5,3].
У 4-ој операцији, како је последњи елемент arr2 већи од последњег елемента arr1 (4 > 3), додај nums[4] у arr2, тада arr2 постаје [4,8].
Након 4 операције, arr1 = [5,3] и arr2 = [4,8].
Стога, низ result формиран конкатенацијом је [5,3,4,8].

Ограничења:

3 <= n <= 50
1 <= nums[i] <= 100
Сви елементи у nums су различити.