当前位置: 首页 > news >正文

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.lryc.cn/news/330492.html

相关文章:

  • HarmonyOS 应用开发之同步任务开发指导 (TaskPool和Worker)
  • 基于MiniExcel的三种常用导出Excel方法(固定列导出、动态列导出、按模板导出)
  • MATLAB科研绘图与学术图表绘制从入门到精通
  • C++核心高级编程 --- 1、内存分区模型 2、引用
  • winform日历控件_进度条控件
  • Java进阶-反射的详解与应用
  • 蓝桥杯算法题——暴力枚举法
  • 【教程】Kotlin语言学习笔记(六)——泛型
  • 【中文视觉语言模型+本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存+)
  • 【Qt 学习笔记】Qt 背景介绍
  • C++递推算法
  • Go项目结构整洁实现|GitHub 3.5k
  • Python读取PDF文字 去掉页眉页脚
  • Linux:入门篇
  • NSSCTF Round#20 Basic 真亦假,假亦真 CSDN_To_PDF V1.2 出题笔记 (附wp+源码)
  • 处理关于 React lazy 白屏的两种方案
  • Nginx 基础
  • C++完美转发(适合小白)
  • 如何创建自己的 Spring Boot Starter 并为其编写单元测试
  • C++ :STL中deque的原理
  • AttributeError: ‘Namespace‘ object has no attribute ‘EarlyStopping‘
  • 深度学习pytorch——卷积神经网络(持续更新)
  • 【edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法】
  • OpenHarmony无人机MAVSDK开源库适配方案分享
  • 模型训练----parser.add_argument添加配置参数
  • 数字未来:探索 Web3 的革命性潜力
  • 群晖NAS使用Docker部署大语言模型Llama 2结合内网穿透实现公网访问本地GPT聊天服务
  • [选型必备基础信息] 存储器
  • C++——C++11线程库
  • 机器学习 | 线性判别分析(Linear Discriminant Analysis)