PayPal Data Structures & Algorithms Interview Questions
Review this list of 9 PayPal data structures & algorithms software engineer interview questions and answers verified by hiring managers and candidates.
"We can use dictionary to store cache items so that our read / write operations will be O(1).
Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1)
Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"
Alfred O. - "We can use dictionary to store cache items so that our read / write operations will be O(1).
Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1)
Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"See full answer
"we can use two pointer + set like maintain i,j and also insert jth character to set like while set size is equal to our window j-i+1 then maximize our answer and increase jth pointer till last index"
Kishor J. - "we can use two pointer + set like maintain i,j and also insert jth character to set like while set size is equal to our window j-i+1 then maximize our answer and increase jth pointer till last index"See full answer
"/*
You are with your friends in a castle, where there are multiple rooms named after flowers. Some of the rooms contain treasures - we call them the treasure rooms.
Each room contains a single instruction that tells you which room to go to next.
* instructions1 and treasurerooms_1 *
lily* --------- daisy sunflower
| | |
v v v
jasmin --> tulip* violet* ----> rose* -->
^ | ^ ^ |
"
Azeezat R. - "/*
You are with your friends in a castle, where there are multiple rooms named after flowers. Some of the rooms contain treasures - we call them the treasure rooms.
Each room contains a single instruction that tells you which room to go to next.
* instructions1 and treasurerooms_1 *
lily* --------- daisy sunflower
| | |
v v v
jasmin --> tulip* violet* ----> rose* -->
^ | ^ ^ |
"See full answer
"
from typing import List
def getnumberof_islands(binaryMatrix: List[List[int]]) -> int:
if not binaryMatrix: return 0
rows = len(binaryMatrix)
cols = len(binaryMatrix[0])
islands = 0
for r in range(rows):
for c in range(cols):
if binaryMatrixr == 1:
islands += 1
dfs(binaryMatrix, r, c)
return islands
def dfs(grid, r, c):
if (
r = len(grid)
"
Rick E. - "
from typing import List
def getnumberof_islands(binaryMatrix: List[List[int]]) -> int:
if not binaryMatrix: return 0
rows = len(binaryMatrix)
cols = len(binaryMatrix[0])
islands = 0
for r in range(rows):
for c in range(cols):
if binaryMatrixr == 1:
islands += 1
dfs(binaryMatrix, r, c)
return islands
def dfs(grid, r, c):
if (
r = len(grid)
"See full answer
"from typing import List
def two_sum(nums: List[int], target: int) -> List[int]:
prevMap = {}
for i, n in enumerate(nums):
diff = target - n
if diff in prevMap:
return [prevMap[diff], i]
else:
prevMap[n] = i
return []
debug your code below
print(two_sum([2, 7, 11, 15], 9))
`"
Anonymous Roadrunner - "from typing import List
def two_sum(nums: List[int], target: int) -> List[int]:
prevMap = {}
for i, n in enumerate(nums):
diff = target - n
if diff in prevMap:
return [prevMap[diff], i]
else:
prevMap[n] = i
return []
debug your code below
print(two_sum([2, 7, 11, 15], 9))
`"See full answer
"def traprainwater(height: List[int]) -> int:
n = len(height)
totalwaterlevel = 0
for i in range(n):
j = i+1
while j = n:
break
rows = j - i -1
intrwaterlevel = min(height[j], height[i]) * rows
for k in range(i+1, j):
intrwaterlevel -= height[k]
totalwaterlevel += intrwaterlevel
i = j
return totalwaterlevel"
Manoj R. - "def traprainwater(height: List[int]) -> int:
n = len(height)
totalwaterlevel = 0
for i in range(n):
j = i+1
while j = n:
break
rows = j - i -1
intrwaterlevel = min(height[j], height[i]) * rows
for k in range(i+1, j):
intrwaterlevel -= height[k]
totalwaterlevel += intrwaterlevel
i = j
return totalwaterlevel"See full answer