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
};

leetcode简单(矩阵):[566, 766, 832, 867, 999, 1030, 1261, 1275, 1337, 1351]的更多相关文章

  1. LeetCode:矩阵置零【73】

    LeetCode:矩阵置零[73] 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [   [1,1,1],   ...

  2. 这样leetcode简单题都更完了

    这样leetcode简单题都更完了,作为水题王的我开始要更新leetcode中等题和难题了,有些挖了很久的坑也将在在这个阶段一一揭晓,接下来的算法性更强,我就要开始分专题更新题目,而不是再以我的A题顺 ...

  3. HDU 1575 Tr A( 简单矩阵快速幂 )

    链接:传送门 思路:简单矩阵快速幂,算完 A^k 后再求一遍主对角线上的和取个模 /********************************************************** ...

  4. leetcode简单题6

    今天的华师 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, fro ...

  5. leetcode 48 矩阵旋转可以这么简单

    一行代码解决矩阵旋转(方法三). 方法1: 坐标法 def rotate(self, matrix): n = len(matrix) # 求出矩阵长度 m = (n + 1) // 2 # 求出层数 ...

  6. leetcode.矩阵.566重塑矩阵-Java

    1. 具体题目 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数.重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充.如果具有给定参数的reshape操 ...

  7. Java实现 LeetCode 73 矩阵置零

    73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ...

  8. LeetCode翻转矩阵后的得分-Python3<六>

    上一篇:LeetCode子域名访问计数-Python3.7<五> 题目:https://leetcode-cn.com/problems/score-after-flipping-matr ...

  9. leetcode 73 矩阵置零 Python

    矩阵置零     给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [   [1,1,1],   [1,0,1],   [1 ...

  10. UVA10870—Recurrences(简单矩阵快速幂)

    题目链接:https://vjudge.net/problem/UVA-10870 题目意思: 给出a1,a2,a3,a4,a5………………ad,然后算下面这个递推式子,简单的矩阵快速幂,裸题,但是第 ...

随机推荐

  1. sqlserver 把 某一列的所有值 变成 in 里面的内容

    SELECT  STUFF(( SELECT  ','+'''' +convert(VARCHAR, cDefine3)+'''' from rdrecord08 where dDate>'20 ...

  2. Flyway简单迁移失败问题

    因为我是初学者,所以问题 只是一些细节性问题,现在看看V开头创建数据库迁移时的错误 问题一: flyway 命名规则问题这个绝对的细节中的细节问题 问题一解决方案: 命名规则:一定要遵循flyway的 ...

  3. C#WPF的多屏显示问题

    如果想让窗口在第二个屏幕中显示 public MainWindow() { InitializeComponent(); Screen[] _screens = Screen.AllScreens; ...

  4. 智影AI故事转视频创作神器!快速开启AI绘画小说推文之旅

    1.前言 1.1 生成内容形式 生成内容形式主要包含三种,PGC(Professionally Generated Content).UGC(User Generated Content).AIGC( ...

  5. Swift 模式下面LLDB 输出对象

    (lldb) expr -l Swift -- import UIKit (lldb) expr -l Swift -- let $pin = unsafeBitCast(0x7f81c8d459f0 ...

  6. itest work 开源接口测试&敏捷测试管理平台 9.5.0 GA_u4发布,优化及修复BUG

    (一)itest work 简介 itest work (爱测试)  一站式工作站让测试变得简单.敏捷,"好用.好看,好敏捷" ,是itest wrok 追求的目标.itest w ...

  7. 使用nvm安装以及管理多版本node教程

    安装nvm.node.npm 下载nvm安装包,推荐使用1.1.7,我个人使用1.1.8会有中文乱码的报错 点击exe文件,注意修改nvm的安装根目录以及node的安装根目录,后者是以后管理多版本no ...

  8. react 装饰器

    使用装饰器定义 装饰器是一种函数,写成 @函数名.它可以放在类和类方法的定义前面.react脚手架创建的项目默认是不支持装饰器,需要手动安装相关模块和添加配置文件. 安装相关模块 npm i -D c ...

  9. kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战

    1.上一节课我们学习了MQTT producer 生产者步骤,MQTT consumer消费者步骤.该步骤可以从支持MRQTT协议的中间件获取数据,该步骤和kafka consumer 一样可以处理实 ...

  10. 在 Windows 10、Windows 11 中打开 IE 浏览器

    在 Windows 10.Windows 11 中打开 IE 浏览器 新建 OpenIE.vbs 文件,输入以下内容后保存: Set OpenIE = CreateObject("Inter ...