Bloomberg | Phone interview | Prepration List
Anonymous User
62983
Dec 08, 2020
Mar 12, 2026

If you are interviewing at bloomberg for a software engineering internship or new grad role, this might really help you.

I recently gave an interview for New grad postion and while preparing I maintained my a list of all the questions that have been previously asked by bloomberg. The following link contains almost all of the interview questions that have beeen asked in bloomberg in the last 2 years and what kind of follow ups they ask.

Link - (removed notion link as I have deleted the page)

About Interviewing at Bloomberg

Always code optimally!!

Telephonic Interview - Previous Interview Questions

Bloomberg interviews mostly include medium questions from Leetcode. The main topics and questions they ask are listed below. In order to start preparing for the interview, the first thing you should understand their interview pattern, and devise a preparation plan.

Easy

  1. Reverse Linked List - LeetCode
  2. Binary Tree Paths - LeetCode
  3. First Unique Character in a String - LeetCode
  4. Valid Anagram - LeetCode
  5. Palindrome Number - LeetCode
  6. Intersection of Two Linked Lists - LeetCode
  7. Two Sum - LeetCode
  8. Min Stack - LeetCode
  9. Valid Parentheses - LeetCode
  10. Merge Two Sorted Lists - LeetCode

Medium

  1. Sum of Mutated Array Closest to Target - LeetCode
  2. Number of Dice Rolls With Target Sum - LeetCode
  3. Sort Characters By Frequency - LeetCode
  4. Add Two Numbers II - LeetCode
  5. Shuffle an Array - LeetCode
  6. Range Sum Query 2D - Immutable - LeetCode
  7. Find Minimum in Rotated Sorted Array - LeetCode
  8. Word Ladder - LeetCode
  9. Design Browser History - LeetCode
  10. Vertical Order Traversal of a Binary Tree - LeetCode
  11. Minesweeper - LeetCode
  12. Number of Islands - LeetCode
  13. Find Peak Element - LeetCode
  14. Binary Tree Level Order Traversal - LeetCode
  15. Unique Paths - LeetCode
  16. Coin Change - LeetCode
  17. Two City Scheduling - LeetCode
  18. Subsets - LeetCode
  19. Binary Tree Right Side View - LeetCode
  20. Insert Delete GetRandom O(1) - LeetCode
  21. Minimum Remove to Make Valid Parentheses - LeetCode
  22. LRU Cache - LeetCode
  23. Decode String - LeetCode
  24. Flatten a Multilevel Doubly Linked List - LeetCode
  25. Word Search - LeetCode
  26. Word Break II - LeetCode
  27. Longest Substring Without Repeating Characters - LeetCode
  28. Merge Intervals - LeetCode
  29. Add Two Numbers - LeetCode
  30. 3Sum - LeetCode
  31. Validate Binary Search Tree - LeetCode
  32. Valid Triangle Number - LeetCode
  33. Invalid Transactions - LeetCode
  34. Design Underground System - LeetCode
  35. Copy List with Random Pointer - LeetCode
  36. Remove All Adjacent Duplicates in String II - LeetCode
  37. Word Search - LeetCode
  38. Reconstruct Itinerary - LeetCode

Hard

  1. Allocate Mailboxes - LeetCode
  2. Longest Consecutive Sequence - LeetCode
  3. Find K-th Smallest Pair Distance - LeetCode
  4. Zuma Game - LeetCode
  5. Remove Invalid Parentheses - LeetCode
  6. Find Median from Data Stream - LeetCode
  7. Merge k Sorted Lists - LeetCode
  8. Trapping Rain Water - LeetCode
  9. LFU Cache - LeetCode
  10. Interleaving String - LeetCode

Premium

  1. Number of Ships in a rectangle - LeetCode
  2. Meeting rooms ii - LeetCode
  3. Binary Tree vertical Order traversal - LeetCode
  4. kill process - LeetCode
  5. Design search Autocomplete system - LeetCode
  6. Design a Leaderboard - LeetCode

Questions From Past Interview Experiences

Evaluate Division

Array of currency conversion rates. E.g. ['USD', 'GBP', 0.77] which means 1 US is equal to 0.77 GBP an array containing a 'from' currency and a 'to' currency. Given the above parameters, find the conversion rate that maps to the 'from' currency to the 'to' currency. Your return value should be a number

// Example:
You are given the following parameters:
Rates: ['USD', 'JPY', 110] ['US', 'AUD', 1.45] ['JPY', 'GBP', 0.0070]
To/From currency: ['GBP', 'AUD']
Output: 1.89

First Unique Number in the data stream

Design a data strucutre with the following interfaces to find the first unique number in a datastream.

public class Stream {
    
    public Stream() {
        // do intialization if necessary
    }

	/**
	* Adds integer num to a stream of integers.
	*/
    public void add(int num) {
        // write your code here
    }

	/**
	*  Returns the first unique integer in the stream if found else return null.
	*/
    public Integer getFirstUnique() {
        // write your code here
    }
}

Stock Ticking (similar to Leaderboard)

Implement the following two functions such that they are optimal. addStocksVolume receives a symbol (INTC, APPL, etc) plus a volume which you cumulate over time. topKstocks would return the k stocks with the highest volume.

void addStocksVolume(string stockSymbol, int volume) {

}

vector<string> topKstocks(int k) {
	// return k top stocks 
}

Stock Exchange System

Given a list of operation hour for each stock exchange, validate if the customer can send a trading order during the input hour. The interviewee asked me(the author) to list all possible solutions that I got and explain the time and space complexity of each solution. Also, he asked me to describe the advantages and disadvantages of each one.

// Example 
Operation hours
09:00-16:00 Royal Bank of Scotland
11:00-17:00 Morgan Stanley
 
Test case #1 - expected result: SUCCESS
10:00-17:00

Test case #2 - expected result: FAILURE
15:00-21:00

Intersection of arrays

Given two arrays, return the intersection of two lists. (both cases - when sorted and when not)

// Example
A = [1, 2, 3, 4]
B = [2, 4, 6]
Result - [2, 4]

Given a list return the two lists having elements from same group

Given List and a function (take 2 params, returns if 2 are of same group) - return list of lists that belong to same group.

bool sameGroup(int a, int b) { 
	// returns true if the elements are of same group else false.
}

Elements in first but not in Second

Return the strings having characters that are not present in another string

// example 
string a - "abcd"
string b - "ab"

ans - "cd"

Similar - Break a long list into 2 smaller lists, 1st smaller list has all elements that are smaller than the elements in 2nd list.

Depth of a String

find string at highest depth.

//example 
input: "((AB)(((CD))))"
output: depth: 4 and string: "CD"

Check if array is sorted or not

Given an array return whether the array is sorted or not (boolean).

  1. true -> Ascending or Descending
  2. true -> if all are same
  3. true -> if just one element
  4. else false

Sort Tree by children

Sort tree by its childrens and return root, here N=total no of nodes and m is avg no of children

// Example
								World
              /   |   \\
             /    |    \\
            C     A     B
          / |     |    /|\\
         /  |     |   / | \\
        E   D     F  H  G  I
        to
            World
          /   |   \\
         /    |    \\
        A     B     C
        |    /|\\    |\\
        |   / | \\   | \\
        F  G  H  I  D  E

Return Sorted Array

Given an array sorted by its absolute values, return sorted array by it actually values - Solve in O(N)

// example 
input: 0,-1, 2, -4,5, 6, -10, -13, -22
output: -22, -13, -10, -4, -1,0, 2, 5, 6

Maximum paths in N steps

Given 2d matrix, find maximum path sum in given N steps only

// example 
2, 3, 4, 6
1, 2, 3 ,5
3, 4, x ,5
0, 1, 2, 3
N = 2
starting cordinate = (2,2)
N = 2
Output: 10 (5->5)

TV Show

A TV show is "addictive" if the viewers quickly become addicted to the show and eventually finish watching the show. It can be tracked after viewing how many episodes of a show at least 70% of the viewers who watched that continued on to finish the show entirely. In other words, more that 70% of the viewers who watched the first x eposides of a show continued on to finish the entire show. The x is what we are looking for.

Assumptions:

  1. All shows have 10 episodes
  2. viewers always start from the first episode (no skipping).

Given a log of entries consisting of a user id, the show name and the episode number that was watched, produce the x for each show.

// example 
Input: The following function is called for each log entry
void process_log(string show, int episode, int user_id)

Expected Output:
void print_results();

Delete Array in Range

Remove ints from an array from given ranges.

Example:

Input: array = [-8, 3, -5, 1, 51, 56, 0, -5, 29, 43, 78, 75, 32, 76, 73, 76], 
ranges = [[5, 8], [10, 13], [3, 6], [20, 25]]
Output: [-8, 3, -5, 29, 43, 76, 73, 76]

Reorder Array

Consider a vector of employees with a name and their title: <John, Manager>. And a dictionary where the keys report to the values: [CTO, CEO]. Re-order the vector of employees according to the dictionary mappings. The vector of employees can be extremely big, however the dictionary only contains the title orderings.

vector : [<John, Manager>, <Sally, CTO>, <Sam, CEO>, <Drax, Engineer>, <Bob, CFO>, <Daniel, Engineer>]
dict: {[CTO, CEO], [Manager, CTO], [Engineer, Manager], [CFO, CEO]}

output:
[<Drax, Engineer>, <Daniel, Engineer>, <John, Manager>, <Sally, CTO>, <Bob, CFO>, <Sam, CEO>]

Generate Number

Genereate Number with two operations in min steps. Given an int n. You can use only 2 operations:

  1. multiply by 2
  2. integer division by 3 (e.g. 10 / 3 = 3)

Find the minimum number of steps required to generate n from 1.

// Example
Input: 10
Output: 6
Explanation: 1 * 2 * 2 * 2 * 2 / 3 * 2
6 steps required, as we have used 5 multiplications by 2, and one division by 3.

Electronic Exchange

You work in an electronic exchange. Throughout the day, you receive ticks (trading data) which consists of product name and its traded volume of stocks. Eg: {name: vodafone, volume: 20}. What data structure will you maintain if:

  1. You have to tell top k products traded by volume at end of day.
  2. You have to tell top k products traded by volume throughout the day.

Reorder Packets

There is a continous stream of data in the form of (1, "abcd"). Write a program to output the data from the stream in realtime in order, so 1,2,3,4,5. You cannot queue up the incoming data from the stream.

Input: (1, "abcd"), (2, "efgh"), (4, "mnop"), (5, "qrst"), (3, "ijkl")
So for example if the first incoming bit of data is (1, "abcd"), and the second is (4, "mnop"), you cannot output (4, "mnop") until you get 2, 3.
  1. Largest Rectangle in Histogram - LeetCode
  2. Compare Strings by Frequency of the Smallest Character - LeetCode
  3. String Compression II - LeetCode
  4. Number of Atoms - LeetCode
  5. Brace Expansion - LeetCode
  6. Flatten Binary Tree to Linked List - LeetCode
  7. https://leetcode.com/problems/correct-a-binary-tree/ - locked
  8. Evaluate Division - LeetCode
  9. Populating Next Right Pointers in Each Node - LeetCode
  10. Minimum Index Sum of Two Lists - LeetCode

More

  • Why Bloomberg?
  • OOP Questions
  • About Projects
  • Discuss the difference between Python, Java, and Javascript
  • Implement a vector in C++ (use dynamic array approach)
  • Occurence sort: given a string sort the string based on the number of times a letter appears in the string from most occurring to least occurring. For letters having the same occurrence sort based on lexicographical order
  • External Sort (Big files) - diff with ram constraints
  • Iterative and Recursive BS
  • Definition of a Binary Search Tree followed by a coding question on finding the kth largest element in a binary search tree
  • Design
    • Design data structure and algorithm for an ipod with play(),pause(),next(),previous(),shuffle(),addSong(),deleteSong()
    • Design a system that allow users to retrieve stock info as fast as possible.
    • Design a OOP class
    • Design Phonebook
    • Design Graph with addRoute,printRoutes
    • Design AWS S3
    • Design Traffic light system.
    • Design Browser History
    • Design Autocomplete you send a prefix "a", this should return "abc", "abd".
  • General CS
    • Time complexity
    • Code refractoring
    • Database and linux
    • Object Oriented Design a lot
    • API + DB design + limitations
    • Project Architecture
  • Behaviourial
    • Why Bloomberg?
    • Top 3 things you are looking for in companies?
    • Resume + behavioral questions + the design of a project that I worked on.

Please feel free to Copy/Add/update anything. or If you know any questions that are not on the list and have been asked in Bloomberg, please comment so that i can update it.

Comments (17)