Dataford
Interview QuestionsInterview GuidesExperiencesCoaching
New
Pricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackCoaching1:1 coaching with people at your target companiesSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Machine Scheduling for Minimum Time
00:00
5 left

Machine Scheduling for Minimum Time

EasyPython

Problem

Andela Talent Cloud needs to route requested engineering jobs to the fastest compatible machine. Given machine capabilities and completion times, return the fastest machine for every requested job.

Each machine has a unique identifier and a mapping from job names to positive completion times. A machine that does not list a job cannot process it. If multiple machines have the same minimum time, choose the machine appearing first in the input array. Return null when no machine can process a requested job.

Because the number of requested jobs can be large, build a reusable index in one pass over all machine capabilities rather than scanning every machine for every query.

Formal Specification

Implement find_fastest_machines(machines, jobs). machines is a list of objects with an id string and a jobs dictionary mapping job-name strings to positive integers. jobs is a list of job-name strings. Return a list with one result per query, in the same order. Each available result is an object containing machine and time; unavailable jobs produce null.

Constraints

  • 1 <= len(machines), len(jobs) <= 10^5
  • The total number of machine capabilities is at most 5 * 10^5
  • Job names are non-empty strings
  • Completion times are positive integers
  • Machine IDs are unique

Function Signature

def find_fastest_machines(machines, jobs):
Interviewer

Your question is Machine Scheduling for Minimum Time. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
Sign up free to run your codeLog inLn 2
Run your code to see test output here.