蜗牛排序题解

题目链接

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]]
 */
相关推荐
开开心心就好8 小时前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
aramae11 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
荆棘鸟智能11 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
默_笙12 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan13 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
天若有情67315 小时前
【纯前端小工具】公历生日转农历,批量查询每年农历生日对应的公历日期(GitHub Pages在线直接用)
前端·javascript·github pages·农历转换·lunisolar·网页小工具
INGNIGHT15 小时前
270 · 电话号码的字母组合II(Trie)
linux·算法
2401_8390805416 小时前
C++常见八股
数据结构·c++·算法
青山是哪个青山16 小时前
LeetCode 188:买卖股票的最佳时机 IV
算法
林语琛16 小时前
我写的 switch…break 被 Babel 偷偷吞了
前端·javascript·babel