leetcode简单(矩阵):[566, 766, 832, 867, 999, 1030, 1261, 1275, 1337, 1351]
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]的更多相关文章
- LeetCode:矩阵置零【73】
LeetCode:矩阵置零[73] 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], ...
- 这样leetcode简单题都更完了
这样leetcode简单题都更完了,作为水题王的我开始要更新leetcode中等题和难题了,有些挖了很久的坑也将在在这个阶段一一揭晓,接下来的算法性更强,我就要开始分专题更新题目,而不是再以我的A题顺 ...
- HDU 1575 Tr A( 简单矩阵快速幂 )
链接:传送门 思路:简单矩阵快速幂,算完 A^k 后再求一遍主对角线上的和取个模 /********************************************************** ...
- leetcode简单题6
今天的华师 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, fro ...
- leetcode 48 矩阵旋转可以这么简单
一行代码解决矩阵旋转(方法三). 方法1: 坐标法 def rotate(self, matrix): n = len(matrix) # 求出矩阵长度 m = (n + 1) // 2 # 求出层数 ...
- leetcode.矩阵.566重塑矩阵-Java
1. 具体题目 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数.重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充.如果具有给定参数的reshape操 ...
- Java实现 LeetCode 73 矩阵置零
73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ...
- LeetCode翻转矩阵后的得分-Python3<六>
上一篇:LeetCode子域名访问计数-Python3.7<五> 题目:https://leetcode-cn.com/problems/score-after-flipping-matr ...
- leetcode 73 矩阵置零 Python
矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1 ...
- UVA10870—Recurrences(简单矩阵快速幂)
题目链接:https://vjudge.net/problem/UVA-10870 题目意思: 给出a1,a2,a3,a4,a5………………ad,然后算下面这个递推式子,简单的矩阵快速幂,裸题,但是第 ...
随机推荐
- AIRIOT答疑第5期|如何使用低代码业务流引擎?
推拉拽! AIRIOT平台业务流引擎可创建丰富的业务流程,实现从流程定义.数据处理.任务工单.消息通知.日志追踪的闭环流转.多类型节点任意组合,可视化流程日志,精准追踪流程流转.人工任务统一管理,审批 ...
- 表单设计——《HTML5 CSS3从入门到精通》
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【JS】await异常捕获,这样做才完美
缘由 JS中async/await异步调用,只能通过try-catch吗? 你想听的故事: 作为一个合格的全栈搬砖工,那必须文武双全,前后必备.遂吾日三省吾身,偶发觉前端长时间不写有些落下,便抽用了摸 ...
- AIAGC导航(aiagc.com): 最全的AI工具导航网站
AIAGC导航是一个专注于AI人工智能工具网站推荐的导航网站,可以帮助大家发现最新.最好用.最有趣的AI绘画.AI智能写作助手.AI聊天机器人.AI配音.AI音乐.AI换脸等各种AI工具应用软件,让A ...
- open代码学习
ADC 用宏定义c++编译器兼容c程序 #ifdef __cplusplus extern "c" { } 枚举类型传值 typedef enum{ CHANNAL_1 = 1; ...
- oidc-client.js踩坑吐槽贴
前言 前面选用了IdentityServer4做为认证授权的基础框架,感兴趣的可以看上篇<微服务下认证授权框架的探讨>,已经初步完成了authorization-code与implicit ...
- 一种基于E3处理器平台的NAS完整方案(从电脑组装到网站部署)
一种基于E3处理器平台的NAS完整方案(从电脑组装到网站部署) 本文将简要简要介绍本人自建NAS的完整配置,截至发文此NAS已经连续良好运行一年,应当说具有良好的稳定性. 本文所述配置包含洋垃圾成分, ...
- kettle从入门到精通 第五十八课 ETL之kettle HTTP post使用教程
1.今天群里有位朋友问我有没有关于调用http接口的kettle 示例,我下意识的去翻我的公众号推文,愣是没找到.果断开始撸. 2.本次演示流程通过调用接口[网易云音乐随机歌曲],然后解析返回的数据, ...
- WIN11 Windows 11 安装过程中如何跳过强制联网
WIN11 Windows 11 安装过程中如何跳过强制联网.22H2. 在要求联网的页面中按下 "Shift+F10"调出命令行窗口,再输入"OOBE\BYPASSNR ...
- Scrapy框架(七)--中间件及Selenium应用
中间件 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. 作用:批量拦截到整个工程中所有的请求和响应 - 拦截请求: - UA伪装:proces ...