蜗牛排序题解

题目链接

2624. 蜗牛排序 - 力扣(LeetCode)

思路:

  1. 首先生成数组 js new Array 生成的是稀疏数组 会导致为 undefined

  2. 根据规律可知,我们除以 rowsCount 得到 列 的位置,根据这个 列 的位置 ,我们可以 看这个列 是 奇数还是 偶数 如果是偶数 代表 求余 rowsCount 的内容,是正序排序的,如果是奇数,则代表 是 逆序排序的(这是规律)

  3. 因此 我们除以 rowsCount 的值 作为列的下标,再根据 奇偶性质 得到 行的下标即可

注意:区分行列

代码:

javascript 复制代码
/**
 * @param {number} rowsCount
 * @param {number} colsCount
 * @return {Array<Array<number>>}
 */
Array.prototype.snail = function (rowsCount, colsCount) {
    if (this.length !== rowsCount * colsCount) return []
    let res = Array(rowsCount).fill().map(() => Array(colsCount))

    for (let i = 0; i < this.length; i++) {
        let row = Math.floor(i / rowsCount), col = i % rowsCount;
        console.log(row, col)
        if (row % 2 === 0) {
            res[col][row] = this[i]
        }
        else {
            res[rowsCount - 1 - col][row] = this[i]
        }
    }
    return res
}

/**
 * const arr = [1,2,3,4];
 * arr.snail(1,4); // [[1,2,3,4]]
 */
相关推荐
0+11114 分钟前
算法 --链表
数据结构·算法·leetcode·链表
aqiu11111129 分钟前
【C++算法打怪专栏】C++ `unordered_set` 常用初始化与插入方法总结
开发语言·c++·算法
Terra.K44 分钟前
高精度阶乘求和模板深度解析
开发语言·c++·算法
Peregrine92 小时前
C++ - > 类和对象
java·c++·算法
默_笙2 小时前
🧀 让大模型的答案"流"出来:NestJS AI 模块 + SSE + RxJS 实战
javascript·人工智能
mbshqqb2 小时前
TypeScript基础教程之同步生成器
前端·javascript·typescript
Gigavision3 小时前
DEAP数据集 2026最新Transformer算法 DEAP 数据集 下载
深度学习·算法·transformer
夜之眷属3 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
尤水就下3 小时前
🔥预热:在线文档的 block 架构是如何实现的(未完待续...)
前端·javascript·架构
全栈项目管理程序猿3 小时前
ArcGIS JS 基础教程(29):CSVLayer 表格点位图层
前端·javascript