第四章:多维数组和矩阵 ----------- 4.2 基础题:将0所在的行列清零

多维数组之矩阵归零(OpenJudge) 多维数组之矩阵归零 描述: 给定一个nn的矩阵(3 <= n <= 100,元素的值都是非负整数)。通过(n-1)次实施下述过程,可把这个矩阵转换成一个11的矩阵。每次的过程如下: 首先对矩阵进行行归零:即对每一行上的所有元素,都在其原来值的基础上减去该行上的最小值,保证相减后的值仍然是非负整数,且这一行上至少有一个元素的值为0。 接着对矩阵进行列归零:即对每一列上的所有元素,都在其原... 阅读详情

将0所在的行列清零:

#include<iostream>
#include<vector>
using namespace std;

void solve(vector<vector<int> > matrix,int rowLen,int colLen)
{
	//记录哪些行出现了0
	int rowRecord[rowLen];
	for(int i=0;i<rowLen;i++)
	{
		rowRecord[i]=0;
	}
	//记录哪些列出现了0
	int colRecord[colLen];
	for(int i=0;i<rowLen;i++)
	{
		colRecord[i]=0;
	}
	for(int i=0;i<rowLen;i++)
	{
		for(int j=0;j<colLen;j++)
		{
			//如果有元素为0,则标记行号、列号 
			if(matrix[i][j]==0)
			{
				rowRecord[i]=1;
				colRecord[j]=1;
			}
		} 
	}	
	//赋值0
	for(int i=0;i<rowLen;i++)
	{
		for(int j=0;j<colLen;j++)
		{
			if(rowRecord[i]==1||colRecord[j]==1)
			{
				matrix[i][j]=0;
			}
		} 
	}
	//打印清零后的结果 
	for(int i=0;i<rowLen;i++)
	{
		for(int j=0;j<colLen;j++)
		{
			cout<<matrix[i][j]<<" ";		
		}		
		cout<<endl;
	}
		 	
}

int main()
{
	vector<vector<int> > arr;
	int row=4,col=5;
	//二维向量赋初值 
	for(int i=0,k=1;i<row;i++)
	{
		vector<int> temp;
		for(int j=0;j<col;j++)
		{
			if((i==1&&j==1)||(i==2&&j==3)||(i==3&&j==4))
			{
				temp.push_back(0);
				k++;
			}
			else
			{
				temp.push_back(k);
				k++;
			}					
		}
		arr.push_back(temp);		
	}
	//打印二维向量	
	for(int i=0;i<row;i++)
	{
		for(int j=0;j<col;j++)
		{
			cout<<arr[i][j]<<" ";		
		}		
		cout<<endl;
	}
	
	cout<<endl;
	
	solve(arr,row,col);
	
	return 0;
} 

结果:

 

如何利用CANoe在两路CAN通道之间创建网关(gateway) CANoe网关,利用CAPL实现CAN转发 阅读详情

相关推荐

VSCode关联VIVADO编辑Verilog

有时候接手别人的代码,或者从网上找的开源代码,每个人风格不一致,对齐缩进也不一样,阅读起来很累。有没有什么方法能快捷地格式化代码呢。下面我们利用VSCode插件来实现这个需求。Vivado是Xilinx公司提供的逻辑开发平台(之一),如果不喜欢Vivado自带的文本编辑器,可以选择第三方的文本编辑器VSCode。

小王在努力...的博客 7150

PTA - 写一个程序,输出你的姓名、年龄、所在学院、所在专业、所在班级。 (20 分)

编程题:写一个程序,输出你的姓名、年龄、所在学院、所在专业、所在班级。 (20 分) 写一个程序,输出你的姓名、年龄、所在学院、所在专业、所在班级。 输出样例 姓名:张三 年龄:20 所在学院:计算机学院 所在专业:计算机科学与技术 所在班级:1班 题目要求如上,并没有给出 输入要求 ,于是我们以为是简单的输出题目,但是会有一个测试点报错。这就比较坑????了,但是这样的情况也不少,还是要综合考虑。其实没啥难的,只是对新手不友好,直接代码自己理解吧! /** * @Author Alan * @T

Alan_Sheng的博客 6123

CPRI原理及应用--基本原理

本文主要介绍CPRI的基本原理,包括CPRI的发展历程、CPRI基本协议、速率、帧结构、时延模型等

u014035968的博客 2万+

将矩阵含有0所在的行和列清零

编写一个算法,若M*N矩阵中某个yu

小菜鸟 1610

直流电动机的建模仿真(1)他励,串励和并励电动机建模仿真

本文根据不同励磁方式的直流电动机的接线原理图,建立了相应的数学模型,然后根据与数学模型对应的等效电路以及模拟机械运动方程的等效电路,用Matlab/simulink中的SpecializedPower system库中的电路元件,建立了他励,并励和串励直流电动机的全等效电路仿真模型,经过与Matlab自带的直流电动机仿真模型比较以及仿真实例验证,所建立的仿真模型时完全正确的。

weixin_45670943的博客 7521

ESXi 6.7升级17700523补丁全流程:从下载到验证的保姆级教程

本文提供ESXi 6.7升级17700523补丁的完整流程指南,涵盖从下载、上传到验证的详细步骤。通过SSH命令和vSphere Client操作,确保系统管理员能够安全高效地完成补丁升级,提升虚拟化环境的安全性和稳定性。

linux6sysadmin的博客 839

将0所在的行列清零《算法很美》

将0所在的行列清零 思路: 先定义好两个辅助数组用作行标记和列标记,然后遍历二维数组,如果是0则给rowRecord[i]和colRecord[i]两个数组赋值1。遍历完过后,在进行一次二维数组遍历,如果rowRecord[i]和colRecord[i]两个数组有为1,则matrix[row][col] = 0; 其实就是用两个数组分别装行和列 public class 将0所在的行列清零 { public static void main(String[] args){ int[]

罗彬桦的博客 297

Claude Code 新手安装指南,手把手教你怎么安装使用

如果你是企业内网用户,或者需要自定义 API 端点,那可以用手动配置 API Key 的方式。

篮球界最会写bug的人;程序猿中打球最菜的人。 492

将矩阵中0元素所对应的行列都清零

编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。 void setZeros(int **matrix, int lrow, int lcol) { bool *row = new bool[lrow]; bool *column = new bool[lcol]; //记录值为0的元素所在的行索引和列索引 for (int i = 0; i {

雪儿的专栏 2475

GPS天线结构、原理、测试

【有源陶瓷天线构成】GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、[接头](h

数字世界 万物互联 2万+

通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现

在。

数字人生 458

多维数组与矩阵之0所在的行列清零

问题描述 如果矩阵中的某个元素为0,则将其所在行和列清零 例如: 输出: 算法思路 这是一道考察数组下标的算法,有个小坑是:如果采用遇到一个零处理一个的方式,即在原数组上遇到一个零就把其对应的行和列元素变为零,则会把整个数组都变为0。 因为这是一个循环的过程,本来原数组中不为0的元素被消为0,产生错误,在数组中有0的情况下,整个数组都会被消为0。 所以采用新的数组来记录原数组中0元素的下标,用...

Superman_peng的博客 590

SI好文翻译:铜箔表面纹理对损耗的影响:一个有效的模型(一)

Paul G. Huray发表在DesignCon2010的提出铜箔表面雪球模型的论文。第一部分说明之前的铜箔表面模型只适用于5GHz以内,超过5GHz后就不再准确。

小孟同学的博客 2174

算法很美 笔记 4.多维数组与矩阵

4.多维数组与矩阵 题1 :顺时针打印二维数组 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9...

xcsxchen 997

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【算法很美】多维数组与矩阵

多维数组与矩阵1. 多维数组基础题● 顺时针打印二维数组● 零所在行列清零● Z字型打印矩阵2. 复杂解● 边界为1的最大字方阵● 编程返回子数组最大累加和● 求子矩阵最大累加和● 矩阵运算一、矩阵的加法与减法二、矩阵与数的乘法三、矩阵与矩阵的乘法 1. 多维数组基础题 ● 顺时针打印二维数组 一圈一圈的打印,每圈以 每圈左上角坐标和右下角坐标 为边界。 public static void print(int[][] matrix) { int leftUpRow = 0, leftUpCo

weixin_48434658的博客 724

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

多维数组和矩阵程序练习

顺时针打印二维数组: 题目: 顺时针打印二维数组。 例如:将如下数组: {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}} 输出为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 思路: 可以先一圈一圈的打印。先打印外圈,再缩小边界范围循环打印内圈即可。打印的时候注意控制边界。 代码...

曹世宏的博客 825

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java算法--第四章--多维数组和矩阵(2)题目:0所在得行列清零

Java算法–第四章–多维数组和矩阵(2)题目:0所在得行列清零 如果矩阵中某个元素为0,则将其所在的行和列清零 1 2 3 4 5 6 0 8 9 0 11 12 13 14 15 16 变为: 1 0 0 4 0 0 0 0 0 0 0 0 13 0 0 16 代码: package matrix; import java.util.Arrays; public class ClearZeroInArr { public static void main(String[] args) { in

wp_886的博客 163

多维数组和矩阵----基础训练

基础题一:顺时针打印二维数组   代码: 1 /** 2 * 顺时针打印二维数组 3 输入 4 1 2 3 4 5 5 6 7 8 6 9 10 11 12 7 13 14 15 16 8 输出 9 1 2 3 4 8 12 16 15 14 13 9...

weixin_30755393的博客 250

题2:0所在行列清零

题目: 如果矩阵的某个元素为0,则将其所在的行和列清0 1 2 3 4 5 6 0 8 9 0 11 12 13 14 15 16 package 多维数组与矩阵; public class case02_0所在行列清零 { public static void main(String[] args) { int[][] matrix={ {1,2,3,4}, {5,6,0,8},

m0_66279156的博客 180

[算法系列] 多维数组--超详细解答!!记几道经典的多维数组习题(顺时针打印矩阵,z字型打印矩阵等)

[算法系列] 多维数组–记几道经典的多维数组习题 1. 顺时针打印二维数组 传入一个二维数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 顺时针打印出: 1 2 3 4 8 12 16 15 14 13 9 5 6 7 8 12 11 10 分析: 有如下二维数组, 那么它具体打印顺序是像右面这样的: 按照 1…5...

lawfree的博客 3388

蓝桥杯算法课《算法最美》笔记——4.多维数组和矩阵

4. 多维数组基础题 4.1 顺时针打印二维数组 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] 打印1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 思路:一圈一圈的打印。 import java.util.ArrayList; import java.util.Arrays; public class 顺时针打印2维数组 { public static void m

m0_55846001的博客 316

多维数组与矩阵

【问题描述】给定一个数组arr ,返回子数组的最大累加和,例: arr=[1,-2,3,5,-2,6,-1]所有的子数组中[3,5,-2,6]可以累加出最大的和12 ,所以返回12。【优化】预处理,复制一份空的与原矩阵阶数相同的矩阵,记录其右和下(包含他自己的1的个数),只检测4个数就行,三维数组。【问题描述】给定一个NxN的矩阵matrix,在这个矩阵中,只有0和1两种值,返回边框全是1的最大正方形的边长长度。【问题描述】给定一个矩阵matrix ,其中的值有正、有负、有0 ,返回子矩阵的最大累加和。

Xpy_021101的博客 202

C++数组操作全解析:从基础初始化到高效赋值技巧

本文全面解析C++数组操作,从基础声明、初始化(包括静态与动态数组)到高效赋值技巧。详细探讨了数组清零的三种方法({0}、memset、循环)、多维数组的内存布局与遍历优化,以及指针与数组的紧密关系。最后介绍了使用std::fill、std::copy等现代C++技巧进行高效、安全的数组赋值与复制,帮助开发者编写更健壮、高效的代码。

q6r7s8t9的博客 563

蓝桥杯《算法很美》第四章 多维数组和矩阵

【1】顺时针打印二维数组 #include &lt;iostream&gt; #include &lt;iomanip&gt; #define MAX 10 /** 回型打印N行M列矩阵 通过不断定位“口”字的左上角和右下角 先打印一圈,再找到重新定位左上角和右下角的规律 */ void Print_arr(int A[MAX][MAX], int N, int M){...

Show me CODE 359

算法很美笔记(Java)——多维数组和矩阵

当leftUpRow、leftUpColumn、rightDownRow、rightDownColumn都相等时会剩中间一个中心元素时单独加if处理。不能直接遍历,遇到0就清零,这样会导致被清零的数也当成0,清零他的行列。顺时针一圈一圈的遍历,与左上角和右下角的坐标作比较,直到两坐标交错。设置一个标志l2r,来控制从从左下到右上遍历还是从右上到左下遍历。从左下到右上遍历,就横坐标--,纵坐标++;从右上到左下遍历,就横坐标++,纵坐标--;每次横着或竖着改变坐标时,l2r就要变。

2301_80103773的博客 258

多维数组与矩阵之子矩阵的最大累加和

问题描述 给定一个矩阵matrix,其中的值有正、有负、有0,返回子矩阵的最大累加和。 例如,matrix为: 其中最大累加和的子矩阵为: 2 2 所以返回4。 算法思路 对矩阵按列求和存到数组里,然后再求此数组的子数组的最大累加和,即为矩阵的最大累加和。 以从第一行为例画图解释: 第一行计算后,最大的累加和为2 同理可对第二行…第n行进行计算,最后得到子矩阵的最大累加和。 代码 public...

Superman_peng的博客 343
上一篇: C++数组默认初值问题
下一篇: 神奇的 Magisk
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值