Leetcode contest
In this channel help tou u with weekly contest join us and improve ur rank )
Every line of code, every algorithm โ a fruit of patience and hard work
#CodingLife #LeetCode #Achievement
Please open Telegram to view this post
VIEW IN TELEGRAM
1โค7๐2๐ฟ1
i am ready for tomorrow ๐ ๐
Please open Telegram to view this post
VIEW IN TELEGRAM
Problem: Q1โ๏ธ
Status: Accepted
Mode: Easy๐ฝ
Code: Kotlin๐ฝ
@leetcode @leetcode7 @contest #leetcode #weekly-465 #wcontest
Status: Accepted
Mode: Easy
Code: Kotlin
class Solution {
fun recoverOrder(order: IntArray, friends: IntArray): IntArray {
val friendsSet = friends.toSet()
val result = mutableListOf<Int>()
for (id in order) {
if (id in friendsSet) {
result.add(id)
}
}
return result.toIntArray()
}
}@leetcode @leetcode7 @contest #leetcode #weekly-465 #wcontest
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Leetcode contest
Title: Q2. Balanced K-Factor Decomposition Status: Medium ๐งโโ๏ธ @leetcode #leetcode #contest #weekly
Problem: Q2. Balanced K-Factor Decomposition ๐
Status: Medium ๐งโโ๏ธ
@leetcode7 @leetcode #contest #leetcode
Status: Medium ๐งโโ๏ธ
class Solution {
public:
vector<int> best;
int min_diff = INT_MAX;
vector<int> get_divisors(long long x) {
vector<int> res;
for (long long i = 1; i * i <= x; ++i) {
if (x % i == 0) {
res.push_back(i);
if (i != x / i) res.push_back(x / i);
}
}
sort(res.begin(), res.end());
return res;
}
bool can_choose(long long d, int left, long long rem) {
long long pow = 1;
for (int i = 0; i < left; ++i) {
if (pow > numeric_limits<long long>::max() / d) {
return false;
}
pow *= d;
if (pow > rem) {
return false;
}
}
return true;
}
void dfs(long long rem, int left, int last_min, vector<int>& curr) {
if (left == 1) {
if (rem >= last_min) {
curr.push_back(rem);
int diff = curr.back() - curr[0];
if (diff < min_diff) {
min_diff = diff;
best = curr;
}
curr.pop_back();
}
return;
}
vector<int> divs = get_divisors(rem);
for (int d : divs) {
if (d >= last_min) {
if (can_choose(d, left, rem)) {
curr.push_back(d);
dfs(rem / d, left - 1, d, curr);
curr.pop_back();
}
}
}
}
vector<int> minDifference(int n, int k) {
int sulmariton = n;
vector<int> curr;
dfs(n, k, 1, curr);
return best;
}
};@leetcode7 @leetcode #contest #leetcode
Title: Q3. Maximum Product of Two Integers With No Common Bitsยฉleetcode
Status: Medium (5pt)
@leetcode @leetcode7 #contest
Status: Medium (5pt)
@leetcode @leetcode7 #contest
Leetcode contest
Title: Q3. Maximum Product of Two Integers With No Common Bitsยฉleetcode Status: Medium (5pt) @leetcode @leetcode7 #contest
Problem: Q3. Maximum Product of Two Integers With No Common Bits โก๏ธ
Status: Medium๐
Code: Kotlin๐
@leetcode7 @leetcode @contest #weeekly
Status: Medium
Code: Kotlin
class Solution {
fun maxProduct(nums: IntArray): Long {
val fenoraktil = nums
val n = nums.size
var maxNum = 0
for (v in nums) if (v > maxNum) maxNum = v
var maxBits = 0
while ((1 shl maxBits) <= maxNum) maxBits++
if (maxBits == 0) maxBits = 1
val size = 1 shl maxBits
val fullMask = size - 1
val top1Val = IntArray(size) { 0 }
val top1Idx = IntArray(size) { -1 }
val top2Val = IntArray(size) { 0 }
val top2Idx = IntArray(size) { -1 }
fun insertAt(mask: Int, value: Int, idx: Int) {
if (idx == -1) return
if (top1Idx[mask] == idx) {
if (value > top1Val[mask]) top1Val[mask] = value
return
}
if (value > top1Val[mask]) {
top2Val[mask] = top1Val[mask]
top2Idx[mask] = top1Idx[mask]
top1Val[mask] = value
top1Idx[mask] = idx
} else if (idx != top1Idx[mask] && value > top2Val[mask]) {
top2Val[mask] = value
top2Idx[mask] = idx
}
}
for (i in nums.indices) {
val mask = nums[i]
insertAt(mask, nums[i], i)
}
for (bit in 0 until maxBits) {
val bitMask = 1 shl bit
for (mask in 0 until size) {
if ((mask and bitMask) != 0) {
val other = mask xor bitMask
val v1 = top1Val[other]; val i1 = top1Idx[other]
if (i1 != -1) insertAt(mask, v1, i1)
val v2 = top2Val[other]; val i2 = top2Idx[other]
if (i2 != -1) insertAt(mask, v2, i2)
}
}
}
var ans = 0L
for (i in nums.indices) {
val m = nums[i]
val cm = fullMask xor m
var partner = 0
if (top1Idx[cm] != -1 && top1Idx[cm] != i) {
partner = top1Val[cm]
} else if (top2Idx[cm] != -1 && top2Idx[cm] != i) {
partner = top2Val[cm]
}
if (partner > 0) {
val prod = nums[i].toLong() * partner.toLong()
if (prod > ans) ans = prod
}
}
return ans
}
}@leetcode7 @leetcode @contest #weeekly
Please open Telegram to view this post
VIEW IN TELEGRAM
Problem: Q4. Sum of Beautiful Subsequences ๐ฅ
Status: Hard (7pt)๐
@leetcode @leetcode7 #contest #weekly
Status: Hard (7pt)
@leetcode @leetcode7 #contest #weekly
Please open Telegram to view this post
VIEW IN TELEGRAM
Leetcode contest
Problem: Q4. Sum of Beautiful Subsequences ๐ฅ Status: Hard (7pt) ๐ @leetcode @leetcode7 #contest #weekly
Problem:Q4. Sum of Beautiful Subsequences โ
Status: Hard (7pt)๐ด
Code: Kotlin๐
@leetcode7 @leetcode #contest #leetcode #leetcode-465
Status: Hard (7pt)
Code: Kotlin
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MOD = 1000000007;
struct Fenwick {
int n;
vector<ll> bit;
Fenwick(int n=0){ init(n); }
void init(int n_){
n = n_;
bit.assign(n+1, 0);
}
void add(int idx, ll val){
while(idx <= n){
bit[idx] = (bit[idx] + val) % MOD;
idx += idx & -idx;
}
}
ll sum(int idx){
ll s=0;
while(idx>0){
s = (s + bit[idx]) % MOD;
idx -= idx & -idx;
}
return s;
}
};
class Solution {
public:
int totalBeauty(vector<int>& nums) {
if(nums.empty()) return 0;
int n = nums.size();
int maxV = *max_element(nums.begin(), nums.end());
vector<vector<int>> seq(maxV + 1);
for(int x : nums){
int r = floor(sqrt(x));
for(int d = 1; d <= r; ++d){
if(x % d == 0){
seq[d].push_back(x);
int od = x / d;
if(od != d) seq[od].push_back(x);
}
}
}
vector<ll> f(maxV + 1, 0);
for(int g = 1; g <= maxV; ++g){
if(seq[g].empty()) continue;
vector<int> vals = seq[g];
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
int m = (int)vals.size();
Fenwick fenw(m);
ll total_g = 0;
for(int v : seq[g]){
int idx = int(lower_bound(vals.begin(), vals.end(), v) - vals.begin()) + 1;
ll s = fenw.sum(idx - 1);
ll cur = (s + 1) % MOD;
fenw.add(idx, cur);
total_g += cur;
if(total_g >= MOD) total_g -= MOD;
}
f[g] = total_g % MOD;
}
vector<ll> h(maxV + 1, 0);
for(int g = maxV; g >= 1; --g){
ll val = f[g];
for(int mult = 2*g; mult <= maxV; mult += g){
val = (val - h[mult]) % MOD;
}
if(val < 0) val += MOD;
h[g] = val;
}
ll ans = 0;
for(int g = 1; g <= maxV; ++g){
if(h[g]){
ans = (ans + (ll)g % MOD * h[g]) % MOD;
}
}
return (int)ans;
}
};
@leetcode7 @leetcode #contest #leetcode #leetcode-465
Please open Telegram to view this post
VIEW IN TELEGRAM
Language: Kotlin | Difficulty: Easy
Language: Cpp | Difficulty: Medium(5pt)
Language: Kotlin | Difficulty: Medium (5pt)
Language: Cpp | Difficulty: Hard (7pt)
@leetcode @leetcode7 @leetcode8 #contest #leetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
โค1
Title: Q1. Minimum Operations to Equalize Array
Status: Easy
#leetcode #contest @leeetcode7 #weekly-466
Status: Easy
#leetcode #contest @leeetcode7 #weekly-466