C : Most Frequent Prime | Weekly Contest 385 | Leetcode solution

preview_player
Показать описание
C : Most Frequent Prime | | Weekly Contest 385 | Leetcode solution
Рекомендации по теме
Комментарии
Автор

Leetcode | weekly-contest-385 | Count Prefix and Suffix Pairs II

kingprashanthyadavkpy
Автор

C : Most Frequent Prime | | Weekly Contest 385 | Leetcode solution

class Solution {
public:
int mat) {
std::unordered_map<int, int> cnt;
int max_prime = -1;
int max_freq = 0;
auto is_prime = [](int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= static_cast<int>(sqrt(num)); ++i) {
if (num % i == 0) {
return false;
}
}
return true;
};

auto get_number = [&mat](int i, int j) {
int m = mat.size();
int n = mat[0].size();
std::vector<int> numbers;
std::vector<std::pair<int, int>> direction = {{0, 1}, {1, 1}, {1, 0}, {1, -1},
{0, -1}, {-1, -1}, {-1, 0}, {-1, 1}};

for (const auto& [dx, dy] : direction) {
int x = i;
int y = j;
int num = 0;
while (0 <= x && x < m && 0 <= y && y < n) {
num = num * 10 + mat[x][y];
if (num > 10) {
numbers.push_back(num);
}
x += dx;
y += dy;
}
}
return numbers;
};

for (size_t i = 0; i < mat.size(); ++i) {
for (size_t j = 0; j < mat[0].size(); ++j) {
auto numbers = get_number(i, j);
cnt.reserve(cnt.size() + numbers.size());
for (int num : numbers) {
cnt[num]++;
if (cnt[num] > max_freq && is_prime(num)) {
max_prime = num;
max_freq = cnt[num];
} else if (cnt[num] == max_freq && is_prime(num)) {
max_prime = std::max(max_prime, num);
}
}
}
}

return max_prime;
}
};

code_pmr
Автор

yeh le 2nd ka ans

class Trie:
def __init__(self):
self.root = TrieNode()

def insert(self, number):
current = self.root
str_number = str(number)

for i in range(len(str_number)):
digit = int(str_number[i])
if current.children[digit] is None:
current.children[digit] = TrieNode()
current = current.children[digit]
current.isEnd = True

def longestCommonPrefixLength(self, number):
current = self.root
str_number = str(number)
len_number = 0

for i in range(len(str_number)):
digit = int(str_number[i])
if current.children[digit] is None:
return len_number
current = current.children[digit]
len_number += 1

return len_number

class TrieNode:
def __init__(self):
self.children = [None]*10
self.isEnd = False

class Solution:
def longestCommonPrefix(self, array1, array2):
trie = Trie()
max_length = 0
for number in array1:
trie.insert(number)
for number in array2:
max_length = max(max_length,
return max_length

jaswinderswain
welcome to shbcf.ru