← Applied intuition Interview Insights

Applied intuition·Software Engineer·Technical Phone Screen·Intermediate

Intermediate
May 2026

Summary

Interviewed for a software engineer role at Applied Intuition and got a coding problem around mesh/vertex compression. Pretty niche stuff compared to the usual leetcode grind, which I appreciated even if it threw me off a bit.

Questions Asked (1)

Q1

Given a list of fixed-size vertex arrays (like 3D coordinates), some of which are duplicates, implement a compression function that returns the deduplicated vertices in first-occurrence order and an index array mapping each original vertex to its position in the deduplicated list.

Algorithms & Data StructuresTechnical Trade-offs
Author's notes

My first instinct was to just reach for a hashmap keyed on the array contents, which worked fine conceptually, but I fumbled around for a bit figuring out how to hash a small fixed-length array cleanly.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem constraints (e.g., vertex format, size, memory limits) and then propose a hash-based solution using a dictionary to map vertex tuples to their first-occurrence indices. Iterate through the original list, building the deduplicated list and index mapping in one pass, and discuss trade-offs like time vs. space complexity.

Pro tip: Mention that you would use a hash of the vertex data (e.g., a tuple of floats) as the key, but be aware of floating-point precision issues and consider using a tolerance-based comparison if exact duplicates are not guaranteed.

1. Clarify requirements and constraints

Ask about vertex data type (e.g., floats, integers), expected input size, memory limits, and whether exact duplicates or near-duplicates need handling. This ensures the solution fits the context.

2. Choose a data structure for efficient lookup

Use a hash map (dictionary) to store each unique vertex as a key and its index in the deduplicated list as the value. This provides O(1) average-time lookups.

3. Iterate and build outputs in one pass

Traverse the original list, and for each vertex, check if it exists in the hash map. If not, add it to the deduplicated list and record its index; then append the index to the mapping array.

4. Analyze complexity and trade-offs

State that the solution runs in O(n) time and O(n) space, where n is the number of vertices. Discuss alternatives like sorting-based deduplication (O(n log n)) and their trade-offs.

5. Address edge cases and optimizations

Consider empty input, all duplicates, and floating-point precision. Suggest using a custom hash or rounding if needed, and mention potential memory optimizations like storing indices as 32-bit integers.

Key Points to Mention

  • Hash map for O(1) average-time lookup
  • Single-pass algorithm for efficiency
  • Time and space complexity analysis (O(n) time, O(n) space)
  • Handling floating-point precision and tolerance
  • Preserving first-occurrence order
  • Trade-offs between hash-based and sorting-based approaches

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.