Skip to content

Instantly share code, notes, and snippets.

View SuryaPratapK's full-sized avatar

Surya Pratap SuryaPratapK

  • Durgapur
View GitHub Profile
class Solution {
public:
int maxDiff(int num) {
string s = to_string(num);
string max_s = s;
string min_s = s;
int n = s.size();
//Maximize number: The first digit<9 should be made 9
for(int i=0;i<n;++i){
class Solution {
bool isPossible(vector<int>& nums,const int& val,const int& p){
int count = 0;
int i=1;
while(i<nums.size()){
if(nums[i]-nums[i-1] <= val){
count++;
i+=2;
}else{
i++;
class Solution {
void precomputePrefixSum(vector<int>& prefixSumA, vector<int>& prefixSumB,
const string& s, const int& n, const int& a, const int& b) {
prefixSumA[0] = prefixSumB[0] = 0;
for (int i = 0; i < n; ++i) {
if (s[i] - '0' == a) prefixSumA[i+1] = 1 + prefixSumA[i];
else prefixSumA[i+1] = prefixSumA[i];
if (s[i] - '0' == b) prefixSumB[i+1] = 1 + prefixSumB[i];
else prefixSumB[i+1] = prefixSumB[i];
class Solution {
public:
string clearStars(string s) {
vector<vector<int>> char_pos(26);
for(int i=0;s[i];++i){
if(s[i]=='*'){
for(int j=0;j<26;++j){
if(char_pos[j].size()>0){
s[char_pos[j].back()]='*';
char_pos[j].pop_back();
class Solution {
inline char smallest(vector<int>& right_freq){
for(int i=0;i<26;++i){
if(right_freq[i]>0)
return char(97+i);
}
return 'z';
}
public:
string robotWithString(string s) {
class Solution {
int find(vector<int>& dsuf,int v){
if(dsuf[v]==-1)
return v;
return dsuf[v]=find(dsuf,dsuf[v]);
}
public:
string smallestEquivalentString(string s1, string s2, string baseStr) {
vector<int> dsuf(26,-1);
class Solution {
public:
string answerString(string word, int numFriends) {
int n = word.size();
if(numFriends==1) return word;
int i = 0;
int j = 1;
int gap = 0;
class Solution {
public:
int maxCandies(vector<int>& status, vector<int>& candies, vector<vector<int>>& keys, vector<vector<int>>& containedBoxes, vector<int>& initialBoxes) {
int n=status.size();
//Apply BFS from start points: Multi-Source BFS (DAG: Since Box-A inside Box-B then opposite is NOT True)
queue<int> q;
for(int start: initialBoxes)
q.push(start);
class Solution {
public:
int candy(vector<int>& ratings) {
int n=ratings.size();
vector<int> candies(n,1);
//Step-1: Assign increasing curve with increasing candies
for(int i=1;i<n;++i){
if(ratings[i]>ratings[i-1])
candies[i] = 1 + candies[i-1];
class Solution {
#define ll long long
ll combinations(ll n){
if(n<0)
return 0;
return 1LL*(n+1)*(n+2)/2;
}
public: