PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep

Quick Overview

Find minimum and most frequent number efficiently evaluates algorithm design, data structures, correctness, complexity, edge cases, and implementation details in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

  • Medium
  • Meta
  • Coding & Algorithms
  • Software Engineer

Find minimum and most frequent number efficiently

Company: Meta

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: Medium

Interview Round: Technical Screen

Given an unsorted integer array, write functions to: (a) find the minimum value; and (b) find any value that occurs most frequently (if multiple values tie for highest frequency, return any one). Provide a straightforward baseline, then analyze its time and space complexity. Follow-up: Reduce running time by trading additional memory (e.g., using auxiliary data structures); describe the trade-offs and implement the improved version.

Quick Answer: Find minimum and most frequent number efficiently evaluates algorithm design, data structures, correctness, complexity, edge cases, and implementation details in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

Given an unsorted integer array `nums`, return a pair `(minValue, mostFrequentValue)` where: - `minValue` is the smallest value in the array. - `mostFrequentValue` is a value that occurs most frequently. If multiple values tie for the highest frequency, return the one that first reaches the running maximum count while scanning left to right (for an all-distinct array this is simply the first element). If the array is empty, return `(None, None)` (in statically typed languages, return a representation of "no value", e.g. an empty result — see templates; tests use non-empty arrays for those). This is the time/space trade-off variant: instead of an O(n^2) baseline that recounts each value, use a single pass with a hash map of counts (O(n) time, O(n) extra space) while simultaneously tracking the minimum.

Constraints

  • 1 <= nums.length <= 10^5 (an empty array returns (None, None))
  • -10^9 <= nums[i] <= 10^9
  • Values may be negative, zero, or duplicated.
  • On a frequency tie, returning any one of the tied values is acceptable; the reference returns the first to reach the running max count.

Examples

Input: ([4, 1, 2, 2, 3, 1, 1],)

Expected Output: (1, 1)

Explanation: Minimum is 1. Frequencies: 1->3, 2->2, others 1. Most frequent is 1.

Input: ([5],)

Expected Output: (5, 5)

Explanation: Single element: it is both the minimum and the most frequent.

Input: ([],)

Expected Output: (None, None)

Explanation: Empty array returns (None, None).

Input: ([-3, -3, -1, 0, 7, 7, 7],)

Expected Output: (-3, 7)

Explanation: Minimum is -3 (negatives handled). 7 occurs 3 times, the most of any value.

Input: ([2, 2, 9, 9, 1],)

Expected Output: (1, 2)

Explanation: Minimum is 1. 2 and 9 both occur twice (a tie); 2 reaches count 2 first scanning left to right, so 2 is returned.

Input: ([10, 20, 30, 40],)

Expected Output: (10, 10)

Explanation: Minimum is 10. All values are distinct (frequency 1); the first element 10 is returned as most frequent.

Hints

  1. The O(n^2) baseline recounts the frequency of every element by scanning the array each time. Can you count all frequencies in one pass instead?
  2. A hash map from value to count gives O(1) amortized counting. Build it while you also track the running minimum so you only traverse the array once.
  3. Update the best (most frequent) candidate inline: whenever an element's new count strictly exceeds the current best count, make it the new best. This naturally yields the first value to reach each new maximum.
  4. Trade-off: you spend O(n) extra memory for the count map to bring time from O(n^2) down to O(n).
Last updated: Jun 26, 2026

Loading coding console...

PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.

Related Coding Questions

  • Find Shortest Unique Prefixes - Meta (medium)
  • Compute Exclusive Execution Times - Meta (medium)
  • Solve Tree Columns And Maze Variants - Meta (medium)
  • Solve Tree Diameter and Palindromic Counts - Meta (medium)
  • Simulate Monster Team Battles - Meta (hard)