当前位置:首页 > JavaScript

蛇形数字宫格的实现js

2026-03-02 03:00:22JavaScript

蛇形数字宫格的实现(JavaScript)

蛇形数字宫格是一种按特定顺序填充数字的矩阵,其填充路径呈蛇形蜿蜒。以下是一种实现方法:

蛇形数字宫格的实现js

初始化矩阵

创建一个二维数组作为矩阵,并初始化所有元素为0:

蛇形数字宫格的实现js

function createMatrix(rows, cols) {
  return Array(rows).fill().map(() => Array(cols).fill(0));
}

填充数字的算法

使用方向控制和边界判断来实现蛇形填充:

function snakeFill(matrix) {
  let rows = matrix.length;
  let cols = matrix[0].length;
  let num = 1;
  let left = 0, right = cols - 1;
  let top = 0, bottom = rows - 1;
  let direction = 'right';

  while (num <= rows * cols) {
    if (direction === 'right') {
      for (let i = left; i <= right; i++) {
        matrix[top][i] = num++;
      }
      top++;
      direction = 'down';
    }

    if (direction === 'down') {
      for (let i = top; i <= bottom; i++) {
        matrix[i][right] = num++;
      }
      right--;
      direction = 'left';
    }

    if (direction === 'left') {
      for (let i = right; i >= left; i--) {
        matrix[bottom][i] = num++;
      }
      bottom--;
      direction = 'up';
    }

    if (direction === 'up') {
      for (let i = bottom; i >= top; i--) {
        matrix[i][left] = num++;
      }
      left++;
      direction = 'right';
    }
  }
  return matrix;
}

示例用法

const matrix = createMatrix(4, 5);
const snakeMatrix = snakeFill(matrix);
console.log(snakeMatrix);

输出示例

对于4x5矩阵,输出将类似:

[
  [1, 2, 3, 4, 5],
  [10, 9, 8, 7, 6],
  [11, 12, 13, 14, 15],
  [20, 19, 18, 17, 16]
]

优化建议

  • 可以添加参数校验确保行列数为正整数
  • 对于超大矩阵可考虑性能优化
  • 支持自定义起始数字和步长

这种方法通过控制方向变量和边界条件,实现了典型的蛇形填充算法。代码清晰展示了数字填充的路径变化逻辑。

标签: 蛇形数字
分享给朋友:

相关文章

vue实现数字资源

vue实现数字资源

Vue 实现数字资源的常见方法 在 Vue 中实现数字资源(如计数器、动画、表单验证等)可以通过多种方式完成。以下是几种常见场景的实现方法: 数字计数器动画 使用 Vue 的过渡和动画特性,结合第三…

蛇形数字宫格的实现js

蛇形数字宫格的实现js

蛇形数字宫格的实现(JavaScript) 蛇形数字宫格是一种按照特定顺序填充数字的矩阵,数字从外向内呈螺旋状排列。以下是实现方法: 初始化变量 需要定义矩阵的大小(n x n)并初始化一个二维数组…

java如何判断是数字

java如何判断是数字

判断字符串是否为数字的方法 在Java中,判断字符串是否为数字可以通过多种方式实现,以下是几种常见的方法: 使用正则表达式 通过正则表达式可以快速判断字符串是否由数字组成: public stat…

java如何判断数字

java如何判断数字

判断数字类型的方法 在Java中,判断一个输入是否为数字可以通过多种方式实现,具体取决于数字的类型(整数、浮点数等)和输入来源(字符串、控制台输入等)。以下是几种常见的方法: 使用正则表达式验证字符…

php实现数字验证

php实现数字验证

使用正则表达式验证数字 正则表达式是验证数字的常用方法,可以匹配整数、浮点数或特定格式的数字。 验证整数: $number = "123"; if (preg_match('/^\d+$/…

PHP实现数字排列

PHP实现数字排列

数字排列的基本概念 数字排列指将一组数字按照特定顺序重新组合,常见于算法题或实际开发需求中。PHP提供了多种方式实现数字排列,包括递归、迭代以及内置函数组合。 使用递归实现全排列 递归是解决排列问题…