首页 > 其他分享 >leetcode简单(矩阵):[566, 766, 832, 867, 999, 1030, 1261, 1275, 1337, 1351]

leetcode简单(矩阵):[566, 766, 832, 867, 999, 1030, 1261, 1275, 1337, 1351]

时间:2023-01-29 23:57:44浏览次数:43  
标签:832 return ++ 1261 766 length let result var

目录

566. 重塑矩阵

var matrixReshape = function(mat, r, c) {
    if (mat.length * mat[0].length != r * c) {
        return mat;
    }
    var newArr = mat.flat(Infinity);
    var result = [];
    var k = 0;
    for (var i = 0; i < newArr.length; i++) {
        if (!result[k]) {
            result[k] = [];
        }
        result[k].push(newArr[i]);
        if ((i + 1) % c == 0) {
            k++;
        }
    }
    return result;
};

766. 托普利茨矩阵

var isToeplitzMatrix = function(matrix) {
    for (let i = 0; i < matrix.length; i++) {
        for (let j = 0; j < matrix[0].length; j++) {
            if (
                matrix[i + 1] &&
                matrix[i + 1][j + 1] != undefined &&
                matrix[i][j] != matrix[i + 1][j + 1]
            ) {
                return false;
            }
        }
    }
    return true;
}

832. 翻转图像

var flipAndInvertImage = function(image) {
    var result = [];
    for (let i = 0; i < image.length; i++) {
        for (let j = image[0].length - 1; j >= 0; j--) {
            let tmp = 1 - image[i][j];
            if (!result[i]) {
                result[i] = [];
            }
            result[i].push(tmp);
        }
    }
    return result;
};

867. 转置矩阵

var transpose = function(A) {
    // return A[0].map((v,i) =>A.map((a,j) =>a[i]))
    var res = [];
    for (var i = 0; i < matrix.length; i++) {
        for (var j = 0; j < matrix[0].length; j++) {
            if (!res[j]) {
                res[j] = [];
            }
            res[j][i] = matrix[i][j];
        }
    }
    console.log(res);
    return res;
};

999. 可以被一步捕获的棋子数

var numRookCaptures = function(board) {
    let x, y; // 车的坐标
    let captureAmount = 0; // 捕获量
    loop: for (let i = 0; i < 8; i++) {
        for (let j = 0; j < 8; j++) {
            if (board[i][j] == "R") {
                x = i;
                y = j;
                break loop;
            }
        }
    }
    // 车在X轴上 位移距离 上右下左顺序
    const dx = [0, 1, 0, -1];
    // 车在Y轴上 位移距离 上右下左顺序
    const dy = [1, 0, -1, 0];

    // 外层循环, 4表示4个方向
    for (let i = 0; i < 4; i++) {
        for (let j = 1;; j++) {
            const moveX = x + j * dx[i];
            const moveY = y + j * dy[i];
            //  判断棋盘边界 且 不可以碰到象
            if ( moveX < 0 || moveX >= 8 || moveY < 0 || moveY >= 8 || board[moveX][moveY] == "B") {
                break;
            }
            if (board[moveX][moveY] == "p") {
                captureAmount++;
                break; // 捕获到卒后,该方向停止前进
            }
        }
    }
    return captureAmount;
};

1030. 距离顺序排列矩阵单元格

var allCellsDistOrder = function(rows, cols, rCenter, cCenter) {
    let x = rCenter;
    let y = cCenter;
    let { abs } = Math;
    let res = [];
    for (let i = 0; i < rows; i++) {
        for (let j = 0; j < cols; j++) {
            res.push([i, j]);
        }
    }
    return res.sort(
        (a, b) => abs(a[0] - x) + abs(a[1] - y) - (abs(b[0] - x) + abs(b[1] - y))
    );
};

1260. 二维网格迁移

var shiftGrid = function(grid, k) {
    while (k--) {
        for (let i = grid.length - 1; i >= 0; i--) {
            grid[(i + 1) % grid.length].unshift(grid[i].pop());
        }
    }
    return grid;
};

1275. 找出井字棋的获胜者

var tictactoe = function(moves) {
    const chess = new Array(3).fill(0).map(() => new Array(3).fill(0));
    moves.forEach((item, index) => {
        let [x, y] = item;
        chess[x][y] = index % 2 ? "B" : "A";
    });
    for (let i = 0; i < 3; i++) {
        let [a, b, c] = chess[i]
        if (a && a == b && b == c) return a
    }

    for (let j = 0; j < 3; j++) {
        let [a, b, c] = [chess[0][j], chess[1][j], chess[2][j]]
        if (a && a == b && b == c) return a
    }

    let [a, b, c] = [chess[0][0], chess[1][1], chess[2][2]]
    if (a && a == b && b == c) return a
    let [j, q, k] = [chess[2][0], chess[1][1], chess[0][2]]
    if (j && j == q && q == k) return j
    if (moves.length < 9) return 'Pending'
    return 'Draw'
};

1337. 矩阵中战斗力最弱的 K 行

var kWeakestRows = function(mat, k) {
    let result = []
    for (let i = 0; i < mat.length; i++) {
        let soldier = mat[i].filter(item => item == 1).length
        result.push([i, soldier])
    }
    return result.sort((a, b) => a[1] - b[1]).splice(0, k).map(item => item[0])
};

1351. 统计有序矩阵中的负数

var countNegatives = function(grid) {
    return grid.flat(Infinity).filter(item => item < 0).length
};

标签:832,return,++,1261,766,length,let,result,var
From: https://www.cnblogs.com/echoyya/p/17074126.html

相关文章

  • [loj3832]无线电信号塔
    为了方便,这里将下标均\(+1\),并在\(0\)和\(n+1\)处建立无穷高的塔记\(i\)左右两侧第一个\(\geh_{i}+\delta\)的塔为\(l_{i}\)和\(r_{i}\),则通信条件也即\(r_{i}<j\)且\(l_......
  • P4766 [CERC2014]Outer space invaders
    目录简述假算法一真算法一真算法二真算法三代码知识点:区间DP链接:Luogu。可能更加的阅读体验:Myblog。简述有\(n\)匹黄金船赶来侵略地球。第\(i\)匹黄金船会在时......
  • 832. Flipping an Image
    ​​cppvector<vector<int>>flipAndInvertImage(vector<vector<int>>&A){for(inti=0;i<A.size();++i){for(intj=0;j<(A[i].size()/2);++j){in......
  • nrf52832 spi使用
    一、nrf52spi简介SPI(SerialPeripheralInterface)称为串行外设接口。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。......
  • Codeforces Round #766 (Div. 2)C,D
    CodeforcesRound#766(Div.2)C,D今天A竟然看错了,还好后来发现了,A题就写了40几分钟,真有你的过了B,排名是8千多,比前几天好一点,加油ヾ(◍°∇°◍)ノ゙CC相比于D,我更没有......
  • CF--832--D
    关键这美妙的模拟,我写的和屎一样,写了一个小时,都没出来1.只需要记录前缀就可以了,不需要适用vector进行二分查找2.只需要看l或r是否为0就可以了,不需要去二分查找代码//......
  • CF1766E Descomposition
    【题意】Forasequenceofintegers$[x_1,x_2,\dots,x_k]$,let'sdefineitsdecompositionasfollows:Processthesequencefromthefirstelementtothe......
  • 【LeeCode】1832. 判断句子是否为全字母句
    【题目描述】全字母句指包含英语字母表中每个字母至少一次的句子。给你一个仅由小写英文字母组成的字符串sentence,请你判断sentence是否为全字母句。如果是,返回true......
  • 力扣每日一题2022.12.12---1832. 判断句子是否为全字母句
    全字母句指包含英语字母表中每个字母至少一次的句子。给你一个仅由小写英文字母组成的字符串sentence,请你判断 sentence是否为全字母句。如果是,返回true;否则,返回......
  • 1832. 判断句子是否为全字母句
    1832.判断句子是否为全字母句classSolution{publicbooleancheckIfPangram(Stringsentence){char[]chars=sentence.toCharArray();int[]......