Untitled
Anonymous
plain_text
03/08/2026 5:24 AM
3.2 KB
36
Indexable
========= Q1 ==========
class Solution {
public:
int minimumIndex(vector<int>& capacity, int itemSize) {
int n=capacity.size();
vector<pair<int,int>> cap;
for(int i=0;i<n;i++){
if(capacity[i]>=itemSize) cap.emplace_back(capacity[i],i);
}
if(cap.empty()) return -1;
sort(cap.begin(),cap.end()); // min capacity box would be at first place
return cap[0].second;
}
};
========= Q2 ==========
#define ll long long int
class Solution {
public:
int smallestBalancedIndex(vector<int>& nums) {
int n=nums.size();
vector<ll> rightProduct(n); // rightProduct[i]=multiplication all number right of i i.e [i+1,... n-1]
rightProduct[n-1]=1;
for(int i=n-2;i>=0;i--){
if(rightProduct[i+1]>LLONG_MAX/nums[i+1]){
rightProduct[i]=LLONG_MAX;
}
else rightProduct[i]=nums[i+1]*rightProduct[i+1]; // > LLONG_MAX a*b>c => a>c/b
}
ll sum=0;
for(int i=0;i<n;i++){
if(sum==rightProduct[i]) return i;
sum+=nums[i];
}
return -1;
}
};
========= Q3 ==========
class Solution {
public:
int minOperations(string s) {
string t=s;
sort(t.begin(),t.end());
if(s==t) return 0;
int n=s.size();
if(n==2) return -1;
if(t[0]==s[0] || t[n-1]==s[n-1]) return 1;
string s1=s;
sort(s1.begin(),s1.begin()+n-1); // sort([0...n-2])
sort(s1.begin()+1,s1.end()); // sort([1...n-1])
string s2=s;
sort(s2.begin()+1,s2.end()); // sort([1...n-1])
sort(s2.begin(),s2.begin()+n-1); // sort([0...n-2])
if(s1==t || s2==t) return 2;
return 3;
}
};
========= Q4 ==========
class Solution {
public:
long long minCost(string s, int encCost, int flatCost) {
int n=s.length();
auto solve=[&](const auto&self,int l,int r)->long long{
if(l>r) return 0;
int len=(r-l+1),bitset=0;
for(int i=l;i<=r;i++) bitset+=(s[i]=='1');
// cost if don't want to do partition
long long ans=(bitset==0 ? flatCost : 1LL*len*bitset*encCost);
// we can do partition if length is even
if(len%2==0){
ans=min(ans,self(self,l,r-(len/2))+self(self,l+(len/2),r));
}
return ans;
};
return solve(solve,0,n-1);
}
};Editor is loading...
Leave a Comment