Solved the question of spiral matrix traversal (leetcode) #1493
+55
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implemented a solution for the "Spiral Matrix" problem (LeetCode #54). The new file 54.C contains the function:
which computes the elements of an n x m matrix in spiral order and returns a dynamically allocated array containing the traversal. The function updates *returnSize with the number of returned elements.
Key details:
Approach: Boundary-tracking traversal (top, bottom, left, right) that iteratively collects rows/columns while shrinking boundaries.
Time complexity: O(n * m) — each matrix element is visited exactly once.
Space complexity: O(n * m) for the returned array (output storage). No extra traversal buffers used.
Assumptions / Notes:
The function expects valid pointers for matrix and returnSize, and positive n and m.
The returned array is allocated with malloc; the caller is responsible for freeing it.
The implementation uses a traversal counter to avoid overrun when the matrix dimensions are uneven.
Suggested follow-ups (not required for this PR):
Add a small unit test / example harness (stdin-driven or fixed test cases) under leetcode/tests/ or repository test pattern.
Validate/handle the edge cases explicitly (e.g., n == 0 or m == 0, or NULL matrix) if the project style requires defensive checks.
Consider renaming the file to use a lowercase extension (54.c) if that matches the repository filename conventions.
References
Problem: LeetCode — Spiral Matrix: https://leetcode.com/problems/spiral-matrix/