GOLANG_INTERVIEW Telegram 1187
🧠 Хитрая задача на Go для продвинутых

Актуально для Go 1.22+


📌 Тень перестановки

У вас есть массив A из n уникальных положительных чисел (`1 ≤ A[i] ≤ 1e6`, `n ≤ 200000`).

Нужно определить, существует ли хотя бы одна перестановка этого массива P, такая что сумма побитовых AND соседних элементов:

P[0]&P[1] + P[1]&P[2] + ... + P[n-2]&P[n-1]

будет чётным числом?

🔍 Наблюдение:

a & b может быть нечётным только если оба числа нечётные.
• Если в массиве есть двое чётных или двое нечётных, то их можно поставить рядом — и сумма будет чётной.
• Значит, если есть хотя бы две одинаковые по чётности — ответ: YES.

Решение (O(n)):

1. Считаем количество чётных и нечётных чисел.
2. Если хотя бы одно из них ≥ 2 → `"YES"`, иначе — `"NO"`.

💻 **Код на Go:**

```go


func HasEvenAndPermutationSum(A []int) string {
odd, even := 0, 0
for _, v := range A {
if v%2 == 0 {
even++
} else {
odd++
}
}
if even >= 2 || odd >= 2 {
return "YES"
}
return "NO"
}```

🧪 Примеры:

```go
HasEvenAndPermutationSum([]int{5, 2, 8}) // YES
HasEvenAndPermutationSum([]int{1}) // NO
HasEvenAndPermutationSum([]int{3, 7, 11}) // YES
HasEvenAndPermutationSum([]int{2, 4, 6, 8}) // YES
HasEvenAndPermutationSum([]int{3, 2}) // NO```

⚙️ Сложность:

• Время: O(n)
• Память: O(1)

📌 Эта задача проверяет не только знание Go, но и умение думать на уровне битов и арифметических свойств. Отличный пример для собеседования: простая по коду, но требует правильного наблюдения.
🥴20👍6🤣5🤔2😢2🥱21



tgoop.com/golang_interview/1187
Create:
Last Update:

🧠 Хитрая задача на Go для продвинутых

Актуально для Go 1.22+


📌 Тень перестановки

У вас есть массив A из n уникальных положительных чисел (`1 ≤ A[i] ≤ 1e6`, `n ≤ 200000`).

Нужно определить, существует ли хотя бы одна перестановка этого массива P, такая что сумма побитовых AND соседних элементов:

P[0]&P[1] + P[1]&P[2] + ... + P[n-2]&P[n-1]

будет чётным числом?

🔍 Наблюдение:

a & b может быть нечётным только если оба числа нечётные.
• Если в массиве есть двое чётных или двое нечётных, то их можно поставить рядом — и сумма будет чётной.
• Значит, если есть хотя бы две одинаковые по чётности — ответ: YES.

Решение (O(n)):

1. Считаем количество чётных и нечётных чисел.
2. Если хотя бы одно из них ≥ 2 → `"YES"`, иначе — `"NO"`.

💻 **Код на Go:**

```go


func HasEvenAndPermutationSum(A []int) string {
odd, even := 0, 0
for _, v := range A {
if v%2 == 0 {
even++
} else {
odd++
}
}
if even >= 2 || odd >= 2 {
return "YES"
}
return "NO"
}```

🧪 Примеры:

```go
HasEvenAndPermutationSum([]int{5, 2, 8}) // YES
HasEvenAndPermutationSum([]int{1}) // NO
HasEvenAndPermutationSum([]int{3, 7, 11}) // YES
HasEvenAndPermutationSum([]int{2, 4, 6, 8}) // YES
HasEvenAndPermutationSum([]int{3, 2}) // NO```

⚙️ Сложность:

• Время: O(n)
• Память: O(1)

📌 Эта задача проверяет не только знание Go, но и умение думать на уровне битов и арифметических свойств. Отличный пример для собеседования: простая по коду, но требует правильного наблюдения.

BY Golang вопросы собеседований


Share with your friend now:
tgoop.com/golang_interview/1187

View MORE
Open in Telegram


Telegram News

Date: |

To view your bio, click the Menu icon and select “View channel info.” The SUCK Channel on Telegram, with a message saying some content has been removed by the police. Photo: Telegram screenshot. Image: Telegram. Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. With the “Bear Market Screaming Therapy Group,” we’ve now transcended language.
from us


Telegram Golang вопросы собеседований
FROM American