328——二维矩阵值变为1最小操作次数 next、nextInt、nextLine

一、next、nextInt、nextLine区别

1.next()

next()不光是接收键盘输入的内容,而且还进行分割。例如默认分隔符为空格

        Scanner sc  = new Scanner(System.in);while (true){String str = sc.next();System.out.println(str + "A");}// 输出结果
input:111 222 333 output:
111A
222A
333A

2.nextLine()

读取输入:包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。所以它和next()的区别就是它没有分隔符,直接扫描全部的键盘输入内容,并创建对象进行将其引用返回

 Scanner sc  = new Scanner(System.in);String str = sc.nextLine();System.out.println("str=" + str);input:
111 222 333
output:
str=111 222 333

3.nextInt()

nextInt() 是取next() 然后把字符串解析成一个int数字。
它本质是调用了next()方法,然后将next()方法返回的字符串再解析成int型数字返回。

// nextInt用法示例:while (true){int n = sc.nextInt();System.out.println("n= " + n + '0');}input :
111 222 333output:
n= 1110
n= 2220
n= 3330

二、算法

题目:

游游拿到了一个 01 矩阵,她每次操作可以选择一个1*2(1行2列,不能2行1列)的区域,将所有字符都变成1。游游想知道,将所有字符都变成1需要最少操作多少次?

输入描述:

第一行输入n,m 表示矩阵的行和列

接下来的n行,每行输入一个长度为m 的0/1,代表矩阵的值

输出描述:

一个整数,代表游游的最小操作次数

代码:

import java.util.Scanner;public class MeiTuan {/** 游游拿到了一个 0-1 矩阵,* 她每次操作可以选择一个1*2(1行2列,不能2行1列)的区域,将所有字符都变成1。* 游游想知道,将所有字符都变成1需要最少操作多少次?* */public static void main(String[] args) {// 处理输入 第一行输入n,m 表示矩阵的行和列// 接下来的n行,每行输入一个长度为m 的0/1,代表矩阵的值Scanner sc = new Scanner(System.in);// 读取n和mSystem.out.println("请输入矩阵的行和列");int n = sc.nextInt();int m = sc.nextInt();sc.nextLine();  // 读取并丢弃行尾剩余部分// 初始化矩阵int[][] matrix = new int[n][m];// 向矩阵中输入内容for (int i = 0; i < n; i++) {// 读取一行内容String line = sc.nextLine();for (int j = 0; j < m; j++) {matrix[i][j] = line.charAt(j) - '0';    // 将line中的内容存入数组中并转为整数}}// 调用最少操作次数函数System.out.println(minOperations(matrix));}public static int minOperations(int[][] matrix){// 得到矩阵的行和列int n = matrix.length;int m = matrix[0].length;// 初始化最小操作数int operations = 0;// 遍历二维数组for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {// 判断数组中当前值是否为0if(matrix[i][j] == 0){// 若其右侧单元格还是0,一起转换if(matrix[i][j+1] == 0 && j < m){operations++;j++;    // 跳过下一个单元格}else {// 若其右侧单元格不是0,那么只增加操作数的值operations++;}}}}return operations;}
}

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

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

相关文章

【算法】归并排序(迭代法)

简介 归并排序有两种实现方法: 递归法(Top-down implementation)迭代法(Bottom-up implementation)关于归并排序的介绍请看之前的 归并排序(递归法)。 算法步骤(迭代) 设待排列序列有 n 个序列。子序列宽度为 width = 1。 将宽度为 width 的子序列每对相邻两个子序…

备考ICA----Istio实验14---出向流量管控Egress Gateways实验

备考ICA----Istio实验14—出向流量管控Egress Gateways实验 1. 发布测试用 pod kubectl apply -f istio/samples/sleep/sleep.yaml kubectl get pods -l appsleep2. ServiceEntry 创建一个ServiceEntry允许流量访问edition.cnn.com egressgw/edition-ServiceEntry.yaml api…

代码随想录Day38

Day 38 动态规划 part01 今日任务 斐波那契数 爬楼梯 使用最小花费爬楼梯 代码实现 斐波那契数 //递归public int fib(int n) {if (n 0) {return 0;}if (n 1) {return 1;}return fib(n - 1) fib(n - 2);}//动态规划public int fib2(int n) {if (n < 1) return n;in…

科技下乡:数字乡村改变乡村生活方式

在科技飞速发展的时代&#xff0c;数字化、信息化浪潮正以前所未有的速度席卷全球。在这场科技革命中&#xff0c;乡村不再是滞后的代名词&#xff0c;而是成为了数字乡村建设的热土。科技下乡&#xff0c;让数字乡村成为了改变乡村生活方式的重要力量。 一、科技下乡&#xf…

(学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

STM32之HAL开发——I2C读写EEPROM

I2C功能框图&#xff08;F1系列&#xff09; STM32 的 I2C 外设可用作通讯的主机及从机&#xff0c;支持 100Kbit/s 和 400Kbit/s 的速率&#xff0c;支持 7 位、 10 位设备地址&#xff0c;支持 DMA 数据传输&#xff0c;并具有数据校验功能&#xff0c;I2C 外设还支持 SMBus2…

工作日志- 不定期更新

1. protobuf中使用import引用其他proto文件&#xff0c;生成后在go语言的go modules中import 包名报错问题。 public.proto文件 //protoc --go_outpluginsgrpc:. public.proto syntax "proto3";package public;option go_package "self/game-service/msg/pu…

3D产品可视化SaaS

“我们正在走向衰退吗&#xff1f;” “我们已经陷入衰退了吗&#xff1f;” “我们正在步入衰退。” 过去几个月占据头条的问题和陈述引发了关于市场对每个行业影响的讨论和激烈辩论。 特别是对于科技行业来说&#xff0c;过去几周一直很动荡&#xff0c;围绕费用、增长和裁…

Webpack生成企业站静态页面 - ajax请求

一些项目因需求不同&#xff0c;如需SEO或小项目&#xff0c;使用angular、react或vue就大材小用了。可以通过webpack、gulp这些构建工具&#xff0c;也能快速完成html页面开发&#xff0c;并且也能使用less/sass/styus等样式预编译功能&#xff0c;以及将js、html分模块、分组…

RabbitMQ高级笔记

视频链接&#xff1a;【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.发送者的可靠性1.1.生产者重试机制1.2.生产者确认机制1.3.实现生产者确认1.3.1.开启生产者确认1.3.2.定义ReturnCallback1.3.3.定义ConfirmCallback 2.MQ的可靠性2.1.数据持久化2.1.1.交换机持久化2.1.2.…

小米汽车SU7发布,售价21.59万起,订单总额破1亿

文 | 大力财经 小米召开新车发布会&#xff0c;正式发布小米 SU7。该车定位中大型纯电轿车&#xff0c;有 SU7、SU7 Pro、SU7 Max 三个版本&#xff0c;车身尺寸 4997/1963/1455mm&#xff0c;轴距 3000mm。售价 21.59-29.99 万。 新车发布后&#xff0c;市场反应热烈&#x…

Redis 过期删除策略 And 内存淘汰策略 !!!

一、Redis过期删除策略&#xff08;什么时候删除&#xff09; 1、惰性删除&#xff1a;放任键过期不管&#xff0c;但是每次从键空间中获取键时&#xff0c;都检查取得的键是否过期&#xff0c;如果过期的话就删除该键&#xff0c;如果没有过期就返回该键。 2、定期删除&…

Topaz Gigapixel AI for Mac 图像放大软件

Topaz Gigapixel AI for Mac是一款专为Mac用户设计的智能图像放大软件。它采用了人工智能技术&#xff0c;特别是深度学习算法&#xff0c;以提高图像的分辨率和质量&#xff0c;使得图像在放大后仍能保持清晰的细节。这款软件的特点在于其能够将低分辨率的图片放大至高分辨率&…

openPLC_Editor C语言编程 在mp157 arm板上调用io等使用记录

1.编程界面比较简单&#xff0c;具备PLC开发编程的四种编程方式。梯形图语言LD &#xff0c;指令表语言IL&#xff0c;结构化文本语言ST&#xff0c;功能模块图语言FBD。 2.官方使用手册。学习资料实在是太少&#xff0c;目前都是自己比较费劲的研究。 3.2 Creating Your First…

QT6实现音频输出方法

一.QT6音频调用及与QT5的区别 1.音频输入 QAudioSource代替QAudioInput类 QAudioSource类提供了一个接口&#xff0c;用于从音频输入设备接收音频数据。 Header: #include <QAudioSource> qmake: QT multimedia 2.音频输出 QAudioSink代替QAudioOutput类 QAudioSi…

第九届蓝桥杯---航班时间python

1.总结&#xff1a; 时 秒数//3600 分 秒数%3600//60 秒 秒数%60 print(‘{:02d}:{:02d}:{:02d}’.format(res//3600, res%3600//60, res%60)) {:02d}表示输入的整数是两位不足前面补0&#xff0c;d表示整数 # 时间计算函数 def time_caculate(t):m1 t[0].split(":&q…

【数据挖掘】实验5:数据预处理(2)

验5&#xff1a;数据预处理&#xff08;2&#xff09; 一&#xff1a;实验目的与要求 1&#xff1a;熟悉和掌握数据预处理&#xff0c;学习数据清洗、数据集成、数据变换、数据规约、R语言中主要数据预处理函数。 二&#xff1a;实验知识点总结 1&#xff1a;数据集成是将多个…

Topaz Video AI for mac 视频增强软件

Topaz Video AI for Mac是一款专为Mac用户设计的视频增强软件&#xff0c;它利用先进的人工智能技术和机器学习算法&#xff0c;为用户提供卓越的视频编辑和增强体验。 软件下载&#xff1a;Topaz Video AI for mac v4.2.2激活版 这款软件能够快速提高视频的清晰度、色彩饱和度…

激发数据潜力:企业数据中台的策略性构建与优化_光点科技

在信息时代&#xff0c;数据是企业价值链中不可或缺的一环。构建一个策略性的企业数据中台不仅能够整合分散的数据资源&#xff0c;还能提高决策效率和业务敏捷性。本文聚焦于如何策略性地构建和优化数据中台&#xff0c;以便企业能够最大化地利用数据资源&#xff0c;推动企业…

Java IO与NIO的对决:一场变革性的I/O架构较量及其实战演绎

在Java编程中&#xff0c;IO&#xff08;Input/Output&#xff09;和NIO&#xff08;New Input/Output&#xff09;是两种处理输入输出操作的关键API。虽然它们的目的都是为了进行数据的读写操作&#xff0c;但在设计理念、性能表现以及使用场景上有着显著的区别。本文将通过实…