Minimum Number of Operations to Satisfy Conditions - Problem

You are given a 2D matrix grid of size m x n. In one operation, you can change the value of any cell to any non-negative number.

You need to perform some operations such that each cell grid[i][j] is:

  • Equal to the cell below it, i.e. grid[i][j] == grid[i + 1][j] (if it exists)
  • Different from the cell to its right, i.e. grid[i][j] != grid[i][j + 1] (if it exists)

Return the minimum number of operations needed.

Input & Output

Example 1 — Basic 3x3 Grid
$ Input: grid = [[1,1,1],[0,0,0],[1,0,1]]
Output: 3
💡 Note: Make column 0 all 1s (cost 0), column 1 all 0s (cost 1), column 2 all 1s (cost 2). Total: 3 operations.
Example 2 — Already Valid
$ Input: grid = [[1,0,2],[1,0,2]]
Output: 0
💡 Note: Each column has uniform values and adjacent columns differ. No operations needed.
Example 3 — Single Row
$ Input: grid = [[1,2,3,4]]
Output: 4
💡 Note: Change to [0,1,0,1] - each column uniform, adjacent differ. Cost: 1+1+1+1 = 4.

Constraints

  • 1 ≤ m, n ≤ 1000
  • 0 ≤ grid[i][j] ≤ 9

Visualization

Tap to expand
Matrix Column Uniformity ProblemInput Grid111000101Requirements• Each column must be uniform• Adjacent columns must differColumn 0: Keep as 1 (cost 0)Column 1: Keep as 0 (cost 1)Column 2: Change to 1 (cost 2)Output101101101Total Operations: 3(0 + 1 + 2 changes needed)Solved with Dynamic Programming in O(m×n) time
Understanding the Visualization
1
Input Grid
3x3 grid with mixed values [[1,1,1],[0,0,0],[1,0,1]]
2
Column Analysis
Count frequencies and determine optimal values per column
3
Output
Minimum operations needed: 3
Key Takeaway
🎯 Key Insight: Transform into column-wise optimization where each column must be uniform and adjacent columns must have different values. Use DP with frequency counting for optimal solution.
Asked in
Google 42 Meta 35 Amazon 28
23.4K Views
Medium Frequency
~25 min Avg. Time
892 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen