Coding questions · TikTok
Solve grid min path and sqrt by binary search
This question evaluates proficiency in dynamic programming and algorithm design for grid-based path optimization as well as numerical methods and binary search for square-root approximation, encompassing time/space complexity analysis, external-memory handling for very large matrices, overflow avoidance, and numerical stability.
-
Given an m x n matrix of non-negative integers, find a path from the top-left to the bottom-right that minimizes the sum of cell values. You may only move right or down. Return both the minimum sum and one optimal path. Describe the algorithm, justify correctness, and analyze time/space complexity. Consider how to handle very large matrices that do not fit entirely in memory.
-
Implement sqrt(x) using binary search.
- Version A: return floor(sqrt(x)) for a non-negative 32-bit or 64-bit integer x without using built-in square root functions; avoid overflow and analyze complexity.
- Version B: return a double approximation within 1e-6 for a non-negative real x; discuss stopping conditions, numerical stability, and edge cases (x=0, 0<x<1, very large x).
Minimum-Sum Grid Path
Move only right or down from top-left to bottom-right. Return [minimum_sum, path_coordinates]. Ties choose right before down.
Constraints
- Cell values are non-negative
Examples
Example 1
Input: ([[1, 3, 1], [1, 5, 1], [4, 2, 1]],)
Output: [7, [[0, 0], [0, 1], [0, 2], [1, 2], [2, 2]]]
Example 2
Input: ([[5]],)
Output: [5, [[0, 0]]]
Hints
- Fill DP from bottom-right and reconstruct greedily.
Integer Floor Square Root
Return floor(sqrt(x)) for non-negative integer x without using a square-root function.
Constraints
- x is non-negative
Examples
Example 1
Input: (0,)
Output: 0
Example 2
Input: (1,)
Output: 1
Hints
- Binary search on the answer and compare with division to avoid overflow.
Real Square Root Approximation
Return sqrt(x) rounded to 6 decimal places using binary search.
Constraints
- x is non-negative
Examples
Example 1
Input: (0.0,)
Output: 0.0
Example 2
Input: (2.0,)
Output: 1.414214
Hints
- For 0 < x < 1, search in [0,1].