蜗牛排序题解

题目链接

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]]
 */
相关推荐
400分几秒前
# LangChain v0.2+ 与 Ollama 三大核心模型实战指南
算法
程序软件分享1 分钟前
vue多语言交易所系统/期货/合约交易/质押生息/盲盒/挖矿/跟单源码
前端·javascript·vue.js·期货平台源码
前端毕业班10 分钟前
使用 vite external 减小产物体积
前端·javascript
fish_xk17 分钟前
c++11的初见
开发语言·c++·算法
ldmd28428 分钟前
Typescript 基础篇--1
前端·javascript·typescript
Amctwd29 分钟前
【JavaScript】JS 异步 Promise 解析
开发语言·前端·javascript
搬砖者(视觉算法工程师)1 小时前
计算机视觉与计算摄影测量学第三讲图像直方图:理论、统计特性与点运算变换
人工智能·算法·计算机视觉
Yingjun Mo1 小时前
3. Meta-Harness:模型基座外壳的端到端优化
人工智能·算法
放下华子我只抽RuiKe51 小时前
React 从入门到生产(一):JSX 与组件思维
前端·javascript·人工智能·pytorch·深度学习·react.js·前端框架
Cthy_hy1 小时前
并查集(Disjoint Set Union):巧判「连通聚类关系」的极简利器
数据结构·算法