In this channel help tou u with weekly contest join us and improve ur rank )
Leetcode Weekly 419
A
C++
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
class Solution {
public:
vector<int> findXSum(vector<int>& nums, int k, int x) {
int n = nums.size();
vector<int> answer;
for (int i = 0; i <= n - k; ++i) {
unordered_map<int, int> frequency;
for (int j = i; j < i + k; ++j) {
frequency[nums[j]]++;
}
vector<pair<int, int>> freqList;
for (const auto& entry : frequency) {
freqList.push_back({entry.second, entry.first});
}
sort(freqList.begin(), freqList.end(), [](const pair<int, int>& a, const pair<int, int>& b) {
if (a.first != b.first) return a.first > b.first;
return a.second > b.second;
});
int sum = 0;
int count = 0;
for (const auto& entry : freqList) {
int frequency = entry.first;
int value = entry.second;
if (count >= x) break;
sum += frequency * value;
count++;
}
answer.push_back(sum);
}
return answer;
}
};
Leetcode Weekly 419
A
C++
A
C++
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
class Solution {
public:
vector<int> findXSum(vector<int>& nums, int k, int x) {
int n = nums.size();
vector<int> answer;
for (int i = 0; i <= n - k; ++i) {
unordered_map<int, int> frequency;
for (int j = i; j < i + k; ++j) {
frequency[nums[j]]++;
}
vector<pair<int, int>> freqList;
for (const auto& entry : frequency) {
freqList.push_back({entry.second, entry.first});
}
sort(freqList.begin(), freqList.end(), [](const pair<int, int>& a, const pair<int, int>& b) {
if (a.first != b.first) return a.first > b.first;
return a.second > b.second;
});
int sum = 0;
int count = 0;
for (const auto& entry : freqList) {
int frequency = entry.first;
int value = entry.second;
if (count >= x) break;
sum += frequency * value;
count++;
}
answer.push_back(sum);
}
return answer;
}
};
Leetcode Weekly 419
A
C++
class Solution {
public:
pair<bool, int> checkPerfect(TreeNode* node) {
if (!node) return {true, 0};
auto leftResult = checkPerfect(node->left);
auto rightResult = checkPerfect(node->right);
if (leftResult.first && rightResult.first && leftResult.second == rightResult.second) {
return {true, leftResult.second + rightResult.second + 1};
}
return {false, 0};
}
void gatherPerfectSizes(TreeNode* node, vector<int>& subtreeSizes) {
if (!node) return;
auto result = checkPerfect(node);
if (result.first) {
subtreeSizes.push_back(result.second);
}
gatherPerfectSizes(node->left, subtreeSizes);
gatherPerfectSizes(node->right, subtreeSizes);
}
int kthLargestPerfectSubtree(TreeNode* root, int k) {
vector<int> subtreeSizes;
gatherPerfectSizes(root, subtreeSizes);
if (subtreeSizes.empty()) return -1;
sort(subtreeSizes.rbegin(), subtreeSizes.rend());
return (k <= subtreeSizes.size()) ? subtreeSizes[k - 1] : -1;
}
};
Leetcode Weekly 419
B
C++
public:
pair<bool, int> checkPerfect(TreeNode* node) {
if (!node) return {true, 0};
auto leftResult = checkPerfect(node->left);
auto rightResult = checkPerfect(node->right);
if (leftResult.first && rightResult.first && leftResult.second == rightResult.second) {
return {true, leftResult.second + rightResult.second + 1};
}
return {false, 0};
}
void gatherPerfectSizes(TreeNode* node, vector<int>& subtreeSizes) {
if (!node) return;
auto result = checkPerfect(node);
if (result.first) {
subtreeSizes.push_back(result.second);
}
gatherPerfectSizes(node->left, subtreeSizes);
gatherPerfectSizes(node->right, subtreeSizes);
}
int kthLargestPerfectSubtree(TreeNode* root, int k) {
vector<int> subtreeSizes;
gatherPerfectSizes(root, subtreeSizes);
if (subtreeSizes.empty()) return -1;
sort(subtreeSizes.rbegin(), subtreeSizes.rend());
return (k <= subtreeSizes.size()) ? subtreeSizes[k - 1] : -1;
}
};
Leetcode Weekly 419
B
C++
Leetcode Weekly 419
B
C++
class Solution {
public:
pair<bool, int> checkPerfect(TreeNode* node) {
if (!node) return {true, 0};
auto leftResult = checkPerfect(node->left);
auto rightResult = checkPerfect(node->right);
if (leftResult.first && rightResult.first && leftResult.second == rightResult.second) {
return {true, leftResult.second + rightResult.second + 1};
}
return {false, 0};
}
void gatherPerfectSizes(TreeNode* node, vector<int>& subtreeSizes) {
if (!node) return;
auto result = checkPerfect(node);
if (result.first) {
subtreeSizes.push_back(result.second);
}
gatherPerfectSizes(node->left, subtreeSizes);
gatherPerfectSizes(node->right, subtreeSizes);
}
int kthLargestPerfectSubtree(TreeNode* root, int k) {
vector<int> subtreeSizes;
gatherPerfectSizes(root, subtreeSizes);
if (subtreeSizes.empty()) return -1;
sort(subtreeSizes.rbegin(), subtreeSizes.rend());
return (k <= subtreeSizes.size()) ? subtreeSizes[k - 1] : -1;
}
};
Leetcode Weekly 419
B
C++
B
C++
class Solution {
public:
pair<bool, int> checkPerfect(TreeNode* node) {
if (!node) return {true, 0};
auto leftResult = checkPerfect(node->left);
auto rightResult = checkPerfect(node->right);
if (leftResult.first && rightResult.first && leftResult.second == rightResult.second) {
return {true, leftResult.second + rightResult.second + 1};
}
return {false, 0};
}
void gatherPerfectSizes(TreeNode* node, vector<int>& subtreeSizes) {
if (!node) return;
auto result = checkPerfect(node);
if (result.first) {
subtreeSizes.push_back(result.second);
}
gatherPerfectSizes(node->left, subtreeSizes);
gatherPerfectSizes(node->right, subtreeSizes);
}
int kthLargestPerfectSubtree(TreeNode* root, int k) {
vector<int> subtreeSizes;
gatherPerfectSizes(root, subtreeSizes);
if (subtreeSizes.empty()) return -1;
sort(subtreeSizes.rbegin(), subtreeSizes.rend());
return (k <= subtreeSizes.size()) ? subtreeSizes[k - 1] : -1;
}
};
Leetcode Weekly 419
B
C++
class Solution {
public String mergeAlternately(String word1, String word2) {
StringBuilder merged = new StringBuilder();
int i = 0, j = 0;
while (i < word1.length() || j < word2.length()) {
if (i < word1.length()) merged.append(word1.charAt(i++));
if (j < word2.length()) merged.append(word2.charAt(j++));
}
return merged.toString();
}
}
public String mergeAlternately(String word1, String word2) {
StringBuilder merged = new StringBuilder();
int i = 0, j = 0;
while (i < word1.length() || j < word2.length()) {
if (i < word1.length()) merged.append(word1.charAt(i++));
if (j < word2.length()) merged.append(word2.charAt(j++));
}
return merged.toString();
}
}
Leetcode contest
class Solution { public String mergeAlternately(String word1, String word2) { StringBuilder merged = new StringBuilder(); int i = 0, j = 0; while (i < word1.length() || j < word2.length()) { if (i < word1.length()) …
Java leetcode 75 easy solution 😮
Please open Telegram to view this post
VIEW IN TELEGRAM
class Solution {
public String gcdOfStrings(String str1, String str2) {
if(str1.length() < str2.length()){
return gcdOfStrings(str2,str1);
}else if(!str1.startsWith(str2)){
return "";
}else if(str2.length() == 0){
return str1;
}else{
return gcdOfStrings(str1.substring(str2.length()),str2);
}
}
}
public String gcdOfStrings(String str1, String str2) {
if(str1.length() < str2.length()){
return gcdOfStrings(str2,str1);
}else if(!str1.startsWith(str2)){
return "";
}else if(str2.length() == 0){
return str1;
}else{
return gcdOfStrings(str1.substring(str2.length()),str2);
}
}
}
Leetcode contest
class Solution { public String gcdOfStrings(String str1, String str2) { if(str1.length() < str2.length()){ return gcdOfStrings(str2,str1); }else if(!str1.startsWith(str2)){ return ""; }else if(str2.length()…
For two strings s and t, we say "t divides s" if and only if s = t + t + t + ... + t + t (i.e., t is concatenated with itself one or more times).
Given two strings str1 and str2, return the largest string x such that x divides both str1 and str2.
Example 1:
Input: str1 = "ABCABC", str2 = "ABC"
Output: "ABC"
Example 2:
Input: str1 = "ABABAB", str2 = "ABAB"
Output: "AB"
Example 3:
Input: str1 = "LEET", str2 = "CODE"
Output: ""
Given two strings str1 and str2, return the largest string x such that x divides both str1 and str2.
Example 1:
Input: str1 = "ABCABC", str2 = "ABC"
Output: "ABC"
Example 2:
Input: str1 = "ABABAB", str2 = "ABAB"
Output: "AB"
Example 3:
Input: str1 = "LEET", str2 = "CODE"
Output: ""