Given an m-by-n matrix, return true if the elements of the matrix are a connected "snake" shape from 1 to m*n. Otherwise return false.

Snakes are vectors that move through the grid of a matrix in a 4-connected sense. So the number 1 can be anywhere, but the number 2 must be north, south, east, or west of 1. And the number 3 must be north, south, east, or west of 2. And so on.

Examples

 [ 1 2 3 4 5 ]    is a snake
 [ 2 1 3 4 ]      is NOT a snake
 [ 1 2 3 2 1 ]    is NOT a snake
 [ 6 5 4 3 ]      is NOT a snake
 [ 6 1 2 
   5 4 3 ]        is a snake
 [ 1 2
   3 4 ]          is NOT a snake
 [  7  8  9 10
    6  1  2 11
    5  4  3 12
   16 15 14 13 ]  is a snake

NOTE: Answers to this problem helped me write the test suite for Cody Problem 42708, Placing Beads Neatly in a Box. Thanks!

Solution Stats

215 Solutions

52 Solvers

Last Solution submitted on Dec 06, 2025

Last 200 Solutions

Problem Comments

Solution Comments

Show comments
Loading...

Problem Recent Solvers52

Suggested Problems

More from this Author54

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!