【九日集训】第七天:二维数组

二维数组就是一个矩阵,它有两个参数,像这样a[i][j],其中i表示第几行,j表示第几列(注意下标从0开始)
一维数组的传参用的一个*int a(int * nums);
二维数组的传参用的两个**int a(int ** nums);知道这个就可以了

第一题

https://leetcode.cn/problems/count-negative-numbers-in-a-sorted-matrix/description/

int countNegatives(int** grid, int gridSize, int* gridColSize) {int c = gridColSize[0];int r = gridSize;int ans = 0;for(int i = 0; i < r; i++) {for(int j = 0; j < c; j++) {if(grid[i][j] < 0) ans++; }}return ans;
}

第二题

https://leetcode.cn/problems/matrix-diagonal-sum/

int diagonalSum(int** mat, int matSize, int* matColSize){int sum = 0;// 加主对角线元素for(int i = 0; i < matSize; i++) {sum += mat[i][i];}// 加副对角线元素int n = 0;for(int i = matSize - 1; i >= 0; i--) {sum += mat[n++][i];}// 如果为奇数,则需要去掉一个中间元素if(matSize % 2 != 0) sum -= mat[matSize / 2][matSize / 2];return sum; 
}

第二种我之前做过的方法,应该也不难理解:

int diagonalSum(int** mat, int matSize, int* matColSize){int sum = 0;int sec = matSize - 1;for(int i = 0; i < matSize; i++) {sum += mat[i][i];if(i != sec) sum += mat[i][sec];sec--;}return sum;
}

第三题

https://leetcode.cn/problems/richest-customer-wealth/description/

int maximumWealth(int** accounts, int accountsSize, int* accountsColSize) {int r = accountsSize;int c = accountsColSize[0];int ans = 0;for(int i = 0; i < r; i++) {int sum = 0;for(int j = 0; j < c; j++) {sum += accounts[i][j];}if(sum > ans) ans = sum;}    return ans;
}

第四题

https://leetcode.cn/problems/toeplitz-matrix/description/
刚开始还想用对角线来解决,发现难度有点大;
这题只要仔细看每个元素存在条件可知,每个元素左上角元素和它一定是相等的。

bool isToeplitzMatrix(int** matrix, int matrixSize, int* matrixColSize) {int r = matrixSize;int c = matrixColSize[0];for(int i = 1; i < r; i++) {for(int j = 1; j < c; j++) {if(matrix[i][j] != matrix[i - 1][j - 1]) return false;}}return true;
}

第五题

https://leetcode.cn/problems/lucky-numbers-in-a-matrix/
模拟题实际上不难,就是需要自己在脑中运算,然后实现在代码上。
具体思路是:1、先遍历数组的行,找到最小的数;
2、然后紧接着根据找到这个最小元素的列进行比较,如果这个数字是列中最大的,则保存到数组中。

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* luckyNumbers (int** matrix, int matrixSize, int* matrixColSize, int* returnSize){int * res = (int *)malloc(sizeof(int) * matrixSize * matrixColSize[0]);int r = matrixSize;int c = matrixColSize[0];int retSize = 0;for(int i = 0; i < r; i++) {int min = matrix[i][0];int tc = 0;for(int j = 1; j < c; j++) {if(matrix[i][j] < min) {min = matrix[i][j];tc = j;}}int flag = 1;for(int z = 0; z < r; z++) {if(min < matrix[z][tc]) {flag = 0;}}if(flag) {res[0] = min;retSize++;}}*returnSize = retSize;return res;
}

第六题

https://leetcode.cn/problems/special-positions-in-a-binary-matrix/description/
和上一题大同小异

int numSpecial(int** mat, int matSize, int* matColSize){int r = matSize;int c = matColSize[0];int ans = 0;for(int i = 0; i < r; i++) {for(int j = 0; j < c; j++) {if(mat[i][j] == 1) {int flag = 1;for(int z = 0; z < r; z++) {if(z == i) continue;if(mat[z][j] == 1) {flag = 0;break;}}for(int x = 0; x < c; x++) {if(x == j) continue;if(mat[i][x] == 1) {flag = 0;break;}}if(flag) ans++;break;}}}return ans;
}

第七题

https://leetcode.cn/problems/island-perimeter/description/
这题不知为什么内存总是溢出,但在我把循环中的i++换为++i就好了。

const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};int islandPerimeter(int** grid, int gridSize, int* gridColSize) {int r = gridSize;int c = gridColSize[0];int ans = 0;for(int i = 0; i < r; ++i) {for(int j = 0; j < c; ++j) {if(grid[i][j]) {int cnt = 0;for(int a = 0; a < 4; ++a) {int tx = i + dx[a];int ty = j + dy[a];if(tx < 0 || tx >= r || ty < 0 || ty >= c || !grid[tx][ty]) {cnt++;}}ans += cnt;}}}return ans;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java操作windows系统功能案例(二)

1、打印指定文件 可以使用Java提供的Runtime类和Process类来打印指定文件。以下是一个示例代码&#xff1a; import java.io.File; import java.io.IOException;public class PrintFile {public static void main(String[] args) {if (args.length ! 1) {System.out.println(…

supermap-iserver激活教程(linux)

本篇只介绍linux临时许可激活教程&#xff0c;windows的原理一摸一样不做赘述。 1.下载许可中心&#xff08;web版&#xff09; SuperMap技术资源中心|为您提供全面的在线技术服务 2.解压 supermap-bslicense-server-3.0.24-linux-x64.tar.gz tar -zxvf supermap-bslicense…

微信小程序 - 开发版、体验版、正式版共享本地缓存

问题描述 最近突然发现一个大问题啊&#xff0c;小程序切换版本环境的时候发现数据被污染了&#xff0c;瞬间就怀疑不同环境版本的小程序本地缓存是否共享的&#xff1f;&#xff01; 果然是&#xff01; 解决方案 我们可能马上想到解决方案就是&#xff1a;给每一个环境版本…

Python字符串大小写转换的函数及用法

Python字符串由内建的str类代表&#xff0c;那么str 类包含哪些方法呢&#xff1f;Python 非常方便&#xff0c;它甚至不需要用户查询文档&#xff0c;Python 是“自带文档”的。 这里需要读者简单掌握两个帮助函数&#xff1a; dir()&#xff1a;列出指定类或模块包含的全部…

万户ezOFFICE wpsservlet任意文件上传漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品&#xff0c;统一的基础管理平台&#xff0c;实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台&#xff0c;将外网信息…

什么是AI PC:人工智能电脑?

大家好啊&#xff0c;我是董董灿。 今天在一个群聊里&#xff0c;聊到了关于 AI PC (人工智能电脑)的话题。 之前看到过关于 AI PC 的新闻&#xff0c;说的是联想集团董事长兼CEO杨元庆在一次演讲中提到了 AI PC 的概念&#xff0c;并且绘声绘色的描绘了AI PC 的发展前景。 下…

希亦、追觅和添可洗地机哪个好?3款热门洗地机测评

洗地机因为自身的超强清洁效果&#xff0c;能大大的降低家务清洁工作&#xff0c;所以近年来以及越来越成为家庭的标配家电。 地机选起来让人眼花缭乱&#xff0c;对于消费者来说&#xff0c;如何选择一台实用性价比高的洗地机已经是一个头疼的问题&#xff0c;看着宣传画面很…

【前端开发】Next.js与Nest.js之间的差异2023

在快节奏的网络开发领域&#xff0c;JavaScript已成为构建可靠且引人入胜的在线应用程序的标准语言。然而&#xff0c;随着对适应性强、高效的在线服务的需求不断增加&#xff0c;开发人员通常不得不从广泛的库和框架中进行选择&#xff0c;以满足其项目的要求。Next.js和Nest.…

【C++ Primer Plus学习记录】嵌套循环和二维数组

for循环是一种处理数组的工具。下面进一步讨论如何使用嵌套for循环中来处理二维数组。 C没有提供二维数组类型&#xff0c;但是用户可以创建每个元素本身都是数组的数组。例如&#xff0c;假设要存储5个城市在4年间的最高温度&#xff0c;可以这样声明数组&#xff1a; int m…

LightDB23.4 支持转换sql中中文空格和逗号为英文空格和逗号

功能介绍 在Lightdb数据库兼容Oracle的语法时&#xff0c;发现Oracle支持sql语句中使用中文空格和中文逗号&#xff0c;为了方便用户迁移到Lightdb&#xff0c;在Lightdb23.4版本中支持了转换中文空格和逗号的功能。该功能由GUC参数lightdb_convert_chinese_char来控制开关&am…

HP1010 | 业界首款图腾柱 PFC 专用数字控制器震撼来袭!

随着节能标准和客户需求的不断提高&#xff0c;电源解决方案的效率和尺寸也在不断优化&#xff0c;设计紧凑高效的 PFC 电源是一个复杂的开发挑战。随着第三代半导体器件氮化镓和碳化硅的大范围应用&#xff0c;图腾柱无桥 PFC&#xff08;TPPFC&#xff09;应用获得极大的拓展…

MapStruct

MapStruct是什么 MapStruct是一个代码生成器&#xff0c;用于简化Java实体类型之间转换&#xff0c;使用时只需定义Mapper映射接口&#xff0c;会自动为我们生成转换代码。本质上MapStruct是通过普通方法调用进行字段映射&#xff0c;快速、类型安全、简单、易于理解。 主页&…

AIGC: 关于ChatGPT中的API调用模型

ChatGPT的API模型 可供GPT的API调用的模型 模型描述GPT4免费的GPT模型&#xff0c;基于3.5改进&#xff0c;可以理解自然语言并生成代码GPT3.5免费的GPT模型&#xff0c;基于3.0改进&#xff0c;可以理解自然语言并生成代码DALLE可以在给定自然语言提示的情况下生成和编辑图像…

Kubernetes(K8s)_15_CNI

Kubernetes&#xff08;K8s&#xff09;_15_CNI CNI网络模型UnderlayMAC VLANIP VLANDirect Route OverlayVXLAN CNI插件FlannelCalico CNI配置内置实现 CNI CNI(Container Network Interface): 实现容器网络连接的规范 Kubernetes将网络通信可分为: Pod内容器、Pod、Pod与Se…

SOT23-3封装的设计与应用:220V转5V芯片电路

SOT23-3封装的设计与应用&#xff1a;220V转5V电路 AH8100介绍了一种基于SOT23-3封装的220V转5V电路l32*4761*OOO1设计方案&#xff0c;该方案具有简单、高效、稳定的特点&#xff0c;适用于各种电子设备。 一、引言 随着科技的发展&#xff0c;电子设备越来越多地应用于我们…

滴滴2023.11.27P0级故障技术复盘回顾(k8s的的错?)

本文从滴滴官方恢复及技术公众号带大家从技术角度复盘这次事故 目录 1. 背景 2. 滴滴官方消息 3. 问题分析及定位 4.网传的k8s及解析 5.k8s引发的思考&#xff1a;举一反三&#xff0c;怎么避免再次出现 6.近段时间其他平台崩溃回顾 1. 背景 11 月 27 晚约 10 点&#xf…

TCP解帧解码、并发送有效数据到FPGA

TCP解帧解码、并发送有效数据到FPGA 工程的功能&#xff1a;使用TCP协议接收到网络调试助手发来的指令&#xff0c;将指令进行解帧&#xff0c;提取出帧头、有限数据、帧尾&#xff1b;再将有效数据发送到FPGA端的BRAM上&#xff0c;实现信息传递。 参考&#xff1a;正点原子启…

11-鸿蒙4.0学习之页面之间的参数传递

11-鸿蒙4.0学习之页面之间的参数传递 方法一 params // 传参页面 import router from ohos.routerEntry Component struct LifeCycle1 {State message: string Hello WorldState isShow: boolean falsebuild() {Row() {Column({ space: 20 }) {Text(this.message).fontSiz…

开发中针对接口返回的数据要不要做兼容的示例详解

开发中&#xff0c;针对接口返回的数据&#xff0c;要不要做兼容&#xff0c;可以查看以下示例&#xff1b; 基本数据类型为string、number、boolean都有属性&#xff0c;但是属性值为 undefined&#xff1b; 基本数据类型为null、undefined没有属性&#xff0c;会 报错 arr、…

Apache Hive3.1.3 遇到DATE_FORMAT转换2021年12月格式的问题

比如&#xff1a;需要将时间2021-12-28 00:00:00转换成2021-12的格式&#xff0c;用date_format会将2021-12转换成2022-12的问题。 解决方法&#xff1a; 方式一&#xff1a;大写的‘Y’换成‘y’ 方式二&#xff1a;字符串截取&#xff0c;substr 本博主推荐方式一&#xf…