Leetcode 54 Spiral Matrix Java Solution
// SOLVING THIS WITH AN AI ASSISTANT (2026)
If you are working through this problem with an AI coding assistant — Claude, ChatGPT, Cursor chat, Gemini, GitHub Copilot, Aider, or any agent — the goal isn’t to ask for the answer. It is to use the tool to understand the pattern. The prompt sequence I’d run:
- Spec it back to me first. “In your own words, what is this problem actually testing? What’s the smallest example that fails the naive approach?”
- Brute-force first, optimize after. “Write the simplest correct solution, even if it’s O(n²). Don’t optimize. Just make it correct, with comments explaining each step.”
- Ask for the upgrade. “Now show me the optimal solution. What insight makes it possible? What pattern is this an instance of?”
- Stress-test it. “Generate 10 edge cases — empty input, single element, duplicates, max size, sorted, reverse-sorted. Run my solution against each.”
The pattern matters more than the answer. If the agent just hands you optimized code, you’ve trained yourself to lose interviews.
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
Example 1:
Input: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] Output: [1,2,3,6,9,8,7,4,5]
Example 2:
Input: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] Output: [1,2,3,4,8,12,11,10,9,5,6,7] Solution 1:
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> spiral = new ArrayList<Integer>();
if(matrix.length == 0) return spiral;
int m = matrix.length;
int n = matrix[0].length;
int i =0;
int j = 0;
int k;
while(i<m && j<n){
for( k=j;k<n;k++){
spiral.add(matrix[i][k]);
}
i++;
for(k=i;k<m;k++){
spiral.add(matrix[k][n-1]);
}
n--;
if(i<m){
for(k = n-1;k>=j;--k){
spiral.add(matrix[m-1][k]);
}
m--;
}
if(j<n){
for(k=m-1;k>=i;--k){
spiral.add(matrix[k][j]);
}
j++;
}
}
return spiral;
}
}
For the AI-native engineering side of HackerHeap — building MCP servers, comparing agents (Claude Code, Cursor, Windsurf, Codex, Gemini, Copilot), and weekly working code — see the Friday Build newsletter and the MCP archive.