

- Главная
- Каталог
- Интернет технологии
- Kotlin | LeetCode
Статистика канала
Полная статистикаchevron_right
Input: n = 5
Output: [0,1,1,2,1,2]
Explanation:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101{}
class Solution {
fun countBits(num: Int): IntArray {
val ans = IntArray(num + 1)
for (x in 1..num) {
ans[x] = ans[x and (x - 1)] + 1
}
return ans
}
}{}
Ставь 👍 и забирай 📚 Базу знанийword1 и word2. Верните true, если два массива представляют одну и ту же строку, и false в противном случае.
Строка представлена массивом, если элементы массива, соединенные в порядке, образуют строку.
Пример:
Input: word1 = ["ab", "c"], word2 = ["a", "bc"]
Output: true
Explanation:
word1 represents string "ab" + "c" -> "abc"
word2 represents string "a" + "bc" -> "abc"
The strings are the same, so return true.{}
class Solution {
fun arrayStringsAreEqual(word1: Array<String>, word2: Array<String>): Boolean {
val list2 = word2.joinToString("")
var index = 0
for (word in word1) {
for (char in word) {
if (index >= list2.length || char != list2[index]) {
return false
}
index++
}
}
return index == list2.length
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: arr = [1,2,2,1,1,3]
Output: true
Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences.{}
class Solution {
fun uniqueOccurrences(arr: IntArray): Boolean {
val freq = mutableMapOf<Int, Int>()
for (num in arr) {
freq[num] = freq.getOrDefault(num, 0) + 1
}
return freq.values.toSet().size == freq.size
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: root = [4,2,6,1,3,5,7], target = 2
Output: [[2,1],[4,3,6,null,null,5,7]]{}
class TreeNode(var `val`: Int) {
var left: TreeNode? = null
var right: TreeNode? = null
}
class Solution {
fun splitBST(root: TreeNode?, target: Int): Array<TreeNode?> {
if (root == null) {
return arrayOf(null, null)
}
return if (root.`val` > target) {
val left = splitBST(root.left, target)
root.left = left[1]
arrayOf(left[0], root)
} else {
val right = splitBST(root.right, target)
root.right = right[0]
arrayOf(root, right[1])
}
}
}{}
Ставь 👍 и забирай 📚 Базу знанийwords, верните максимальное значение произведения длины word[i] на длину word[j], где два слова не имеют общих букв. Если таких двух слов не существует, верните 0.
Пример:
Input: words = ["abcw","baz","foo","bar","xtfn","abcdef"]
Output: 16
Explanation: The two words can be "abcw", "xtfn".{}
class Solution {
fun maxProduct(words: Array<String>): Int {
val n = words.size
val masks = IntArray(n)
val lens = IntArray(n)
for (i in 0 until n) {
var bitmask = 0
for (ch in words[i]) {
bitmask = bitmask or (1 shl (ch - 'a'))
}
masks[i] = bitmask
lens[i] = words[i].length
}
var maxVal = 0
for (i in 0 until n) {
for (j in i + 1 until n) {
if (masks[i] and masks[j] == 0) {
maxVal = maxOf(maxVal, lens[i] * lens[j])
}
}
}
return maxVal
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: nums = [1], k = 1
Output: [1]{}
class Solution {
fun maxSlidingWindow(nums: IntArray, k: Int): IntArray {
val dq = ArrayDeque<Int>()
val res = mutableListOf<Int>()
for (i in 0 until k) {
while (dq.isNotEmpty() && nums[i] >= nums[dq.last()]) {
dq.removeLast()
}
dq.addLast(i)
}
res.add(nums[dq.first()])
for (i in k until nums.size) {
if (dq.first() == i - k) {
dq.removeFirst()
}
while (dq.isNotEmpty() && nums[i] >= nums[dq.last()]) {
dq.removeLast()
}
dq.addLast(i)
res.add(nums[dq.first()])
}
return res.toIntArray()
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: matrix =
[
[0,1,1,1],
[1,1,1,1],
[0,1,1,1]
]
Output: 15{}
class Solution {
fun countSquares(matrix: Array<IntArray>): Int {
val m = matrix.size
val n = matrix[0].size
val dp = Array(m) { IntArray(n) }
var count = 0
for (i in 0 until m) {
for (j in 0 until n) {
if (matrix[i][j] == 1) {
if (i == 0 || j == 0) {
dp[i][j] = 1
} else {
dp[i][j] = minOf(dp[i-1][j], minOf(dp[i][j-1], dp[i-1][j-1])) + 1
}
count += dp[i][j]
}
}
}
return count
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: root = [1,null,2,3]
Output: [1,2,3]{}
class TreeNode(var `val`: Int) {
var left: TreeNode? = null
var right: TreeNode? = null
}
class Solution {
fun preorderTraversal(root: TreeNode?): List<Int> {
if (root == null) {
return emptyList()
}
val stack = mutableListOf(root)
val output = mutableListOf<Int>()
while (stack.isNotEmpty()) {
val node = stack.removeAt(stack.lastIndex)
output.add(node.`val`)
node.right?.let { stack.add(it) }
node.left?.let { stack.add(it) }
}
return output
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: colors = [1,1,2,1,3,2,2,3,3], queries = [[1,3],[2,2],[6,1]]
Output: [3,0,3]
Explanation:
The nearest 3 from index 1 is at index 4 (3 steps away).
The nearest 2 from index 2 is at index 2 itself (0 steps away).
The nearest 1 from index 6 is at index 3 (3 steps away).{}
class Solution {
fun shortestDistanceColor(colors: IntArray, queries: Array<IntArray>): List<Int> {
val queryResults = mutableListOf<Int>()
val hashmap = mutableMapOf<Int, MutableList<Int>>()
for (i in colors.indices) {
hashmap.putIfAbsent(colors[i], mutableListOf())
hashmap[colors[i]]!!.add(i)
}
for (query in queries) {
val target = query[0]
val color = query[1]
val indexList = hashmap[color]
if (indexList == null) {
queryResults.add(-1)
continue
}
val insert = indexList.binarySearch(target)
val insertPos = if (insert < 0) -insert - 1 else insert
if (insertPos == 0) {
queryResults.add(indexList[insertPos] - target)
} else if (insertPos == indexList.size) {
queryResults.add(target - indexList[insertPos - 1])
} else {
val leftNearest = target - indexList[insertPos - 1]
val rightNearest = indexList[insertPos] - target
queryResults.add(min(leftNearest, rightNearest))
}
}
return queryResults
}
}{}
Ставь 👍 и забирай 📚 Базу знаний
Input: nums = [1], queries = [[4,0]]
Output: [0]{}
fun sumEvenAfterQueries(nums: IntArray, queries: Array<IntArray>): IntArray {
var evenSum = nums.filter { it % 2 == 0 }.sum()
val result = IntArray(queries.size)
for (i in queries.indices) {
val (value, index) = queries[i]
if (nums[index] % 2 == 0) {
evenSum -= nums[index]
}
nums[index] += value
if (nums[index] % 2 == 0) {
evenSum += nums[index]
}
result[i] = evenSum
}
return result
}{}
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
Каталог Телеграм-каналов для нативных размещений
Kotlin | LeetCode — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 1.9K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.1, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 839.16 ₽, а за 1 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий