Amazon | SDE1 | Gurgaon| Oct 2021
Anonymous User
886

Current Position: SDE1 at Paytm
Location: Noida, India
Date: October 15, 2021

image
image

Q1
Solution:
vector<int> findSongs(int rideDuration, vector<int> a) {
    if(rideDuration < 30)  return {-1,-1};
    int x = rideDuration - 30;
    vector<int>res(2);
    res[0]=-1;
    res[1]=-1;
    int ma = INT_MIN;
    map<int,int>m;
    for(int i=0;i<a.size();i++){
        if(m.count(x-a[i]) && i!= m[x-a[i]] &&(ma < max(a[i],x-a[i])) ){
            res[0] = m[x-a[i]];
            res[1] = i;
            ma = max(a[i],x-a[i]);
        }
        m[a[i]]=i;
    }
    return res;
}

image
image

Q2
Solution:
int distanceTraversed(vector<vector<int>> a) {
    int n = a.size();
    int m = a[0].size();
    queue<pair<int,int>>q;
    vector<vector<bool>>vis(n,vector<bool>(m,false));
    if(a[0][0] != 1)    return -1;
    q.push({0,0});
    vis[0][0] = true;
    vector<vector<int>>dir = {{1,0},{-1,0},{0,1},{0,-1}};
    int moves = 0;
    while (!q.empty()) {
        int size = q.size();
        for(int j=0;j<size;j++){
            pair<int,int>temp = q.front();
            int x = temp.first, y = temp.second;
            q.pop();
            if(a[x][y] == 9)    return moves;
            for(int i=0;i<4;i++){
                int xx = x+dir[i][0], yy = y+dir[i][1];
                if(xx<0 || yy<0 || xx>=n || yy>=m || a[xx][yy]==0 || vis[xx][yy])   continue;
                vis[xx][yy] = true;
                q.push({xx,yy});
            }
        }
        moves++;
    }
    return -1;
}
Comments (3)