← Interview experiences
Got the offer

Software Application Development Apperentice at Google

Difficulty
Process took
1-2 Weeks
Rounds
1
Format
Remote
Applied via
Company Website

How it went

  • Just Prepare for Data Structures and Algorithms nothing more nothing less

What they would tell you

  • Just Prepare for Data Structures and Algorithms nothing more nothing less

How to prepare

  • Data Structures and Algorithms

Their background

Graduated in 2025 , Looking for Software Engineer Roles

Round by round

  1. 1

    Technical Round 145 min

    I was asked a Binary Tree based Question where in a Binary Tree has all the float64 values. We had to do the following operations: a. replace node-> val with its reciprocal b. swap the left and right nodes of the tree**(not swapping values)** c. if the node-> val is the arithematic mode(i.e most repeated value in the tree) then remove its subtree and that node Contstraints all the basic constraints and nothing extra Duration of the Internship : 24 months Duration of the Interview : 45 mins Find the solution below attached. This was my code I had solved it in Time Complexity :** **O(n) (O(n) in all the functions individually) Space Complexity : O(n) (using just the map) #include <bits/stdc++.h> using namespace std;

    struct TreeNode { double val; TreeNode *left; TreeNode *right; TreeNode(double x) : val(x), left(NULL), right(NULL) {} };

    class Solution { public: TreeNode* twisty(TreeNode* root) { if (!root) return nullptr; unordered_map<double,int> freq; countFreq(root, freq); double mode = root->val; int maxf = 0; for (auto &p : freq) { if (p.second > maxf) { maxf = p.second; mode = p.first; } } return transform(root, mode); }

    private: void countFreq(TreeNode* node, unordered_map<double,int>& freq) { if (!node) return; freq[node->val]++; countFreq(node->left, freq); countFreq(node->right, freq); }

    TreeNode* transform(TreeNode* node, double mode) {
        if (!node) return nullptr;
        if (node-&gt;val == mode) {
            freeTree(node);
            return nullptr;
        }
        swap(node-&gt;left, node-&gt;right);
        node-&gt;val = 1.0 / node-&gt;val; // here he asked to add check of non-zero division
        node-&gt;left = transform(node-&gt;left, mode);
        node-&gt;right = transform(node-&gt;right, mode);
        return node;
    }
    
    void freeTree(TreeNode* node) {
        if (!node) return;
        freeTree(node-&gt;left);
        freeTree(node-&gt;right);
        delete node;
    }
    

    }; Follow up was asked how to implement the swap function of two numbers

What came up

MediumRemote0 1 years

A candidate-reported account, lightly edited. Interview processes change by team and date.

Sources