蜗牛排序题解

题目链接

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]]
 */
相关推荐
一只小阿乐2 小时前
react 中的Zustand的store使用
前端·javascript·react.js·zustand
我命由我123452 小时前
Vue3 开发中,字符串中的 <br\> 标签被直接当作文本显示出来了,而不是被解析为 HTML 换行标签
开发语言·前端·javascript·vue.js·html·ecmascript·html5
airuike1232 小时前
高性能MEMS IMU:重构无人机飞行控制核心
人工智能·算法·重构·无人机
娇娇爱吃蕉蕉.2 小时前
类和对象的默认成员函数
c语言·开发语言·c++·算法
人道领域2 小时前
【LeetCode刷题日记】哈希表:从0基础到实战全解析
算法·leetcode·哈希算法
py有趣2 小时前
力扣热门100题之矩阵置零
算法·leetcode·矩阵
早點睡3902 小时前
ReactNative项目OpenHarmony三方库集成实战:react-native-inappbrowser(也可以考虑WebView)
javascript·react native·react.js
蚂蚁在飞-2 小时前
Go 1.26
算法
北风toto2 小时前
Vue多文件学习项目综合案例——面经基础版,黑马vue教程
javascript·vue.js·学习