蜗牛排序题解

题目链接

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]]
 */
相关推荐
cpp_250115 小时前
P1024 [NOIP 2001 提高组] 一元三次方程求解
数据结构·c++·算法·题解·二分答案·洛谷·csp
布局呆星16 小时前
Vue Router :基础使用与嵌套路由实战
前端·javascript·vue.js
田梓燊1 天前
力扣:23.合并 K 个升序链表
算法·leetcode·链表
re林檎1 天前
算法札记——4.27
算法
谁呛我名字1 天前
JavaScript 类型转换与运算规则
javascript
数据牧羊人的成长笔记1 天前
逻辑回归与Softmax回归
算法·回归·逻辑回归
郑州光合科技余经理1 天前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
冰暮流星1 天前
javascript事件案例-全选框案例
服务器·前端·javascript
Dillon Dong1 天前
【系列主题】Next.js 16 + Turbopack 的暗礁:深入剖析 Tailwind v4 的 CSS 模块解析陷阱
javascript·css·容器·turbopack
糯米团子7491 天前
Web Worker
开发语言·前端·javascript