java枚举与模拟方法

枚举

枚举的定义

枚举算法(穷举算法),这种算法就是在解决实际问题的时候去使用所有的方式去解决这个问题,会通过推理去考虑事件发生的每一种可能性,最后推导出结果

优点 简单粗暴,他暴力的枚举所有可能,尽可能地尝试所有的方法(时间复杂度很高,通过不了,只能通过部分案例)

缺点 大部分题目使用枚举拿不到满分

枚举的技巧

1 确定解的类型

        在进行枚举之前,我们要确定解的类型是什么,如果是求满足条件的数目,那我们就枚举的每个变量,计算一共有多少个满足条件的数据。如果是满足条件区间的个数,那我们就枚举每个区间。

2  选择枚举的方法

        常见的枚举方法有直接枚举法(for )

3 判断是否满足条件

        在枚举出一个解后,我们需要判断其是否是可行解

题目解析

1  标题统计

问题描述

输入一行字符串,计算这个字符 串中有多少个字符?

注意 

字符串中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题的字符数时,空格和换行符不计算在内。

解题步骤

1 确定解的类型(分析题目的结果,是合理数据的数量,还是合理区间的数量)

2 确定枚举方法(for循环,递归函数)

3 判断当前数据是否符合题意(符合题意,把数据添加到结果集中,不符合就遍历下一个数据)

4 当前枚举算法是否需要优化,怎么去优化

 

package Accommodate;import java.util.*;public class Main1 {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan=new Scanner(System.in);String str=scan.nextLine();/*接受来自控制台的数据*不适用next() */int sum=0;for(int i=0;i<str.length();i++) {if(str.charAt(i)!='\n'&&str.charAt(i)!=' ') {sum++;}}System.out.print(sum);}}

 

2 计数问题

问题  计算在区间1到n的所有整数中,数字x(0<=x<=9)出现了多少次?

package Accommodate;import java.util.*;public class Main2 {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan=new Scanner(System.in);int n =scan.nextInt();int x=scan.nextInt();int s=0;for(int i=1;i<=n;i++) {String  a=i+"";//当前数字强行转化为字符串for(int j=0;j<a.length();j++) {//循环遍历每个转换成字符的数字int c=a.charAt(j)-'0';/*字符转会数字str.charAt(i)是一个char型,* 减去'0',就相当于把字符转成数字*/if(c==x) {s++;}}}//当前数字是否是xSystem.out.print(s+" ");}}

 

模拟

模拟的定义

 什么是模拟?

仅仅使用较简单的算法和数据结构的题目。

模拟顾名思义,就是按照题目的要求,一步步写出代码。

特点:

模拟题目通常具有码量大,操作多、思路繁复的特点。

模拟过程

1 读题 读懂题目的意思

2 建模 利用什么样的数据结构来实现

3 代码实现 写出代码框架

4 调试、优化

例题讲解

题目 

在一个n行m列的方格图上有一个位置上有地雷,另外一些位置为空。请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。

输入描述

第一行包含两个整数n,m

第二行到第n+1行每行包含m个整数,相邻整数之间用一个空格分隔

如果对应的整数为0,表示这一格没有地雷。如果对应的整数为1.表示这一格有地雷。

对于有地雷的方格,输出9

示例输入

3 4 

0 1 0 0

1 0 1 0

0 0 1 0

输出

2 9 2 1 

9 4 9 2

1 3 9 2

package Accommodate;
import java.util.*;public class Main3 {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan=new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();int[][]arr=new int [n][m];for(int i=0;i<n;i++) {for(int j=0;j<m;j++) {arr[i][j]=scan.nextInt();}}//获取数据for(int i=0;i<n;i++) {for(int j=0;j<m;j++) {//a[i][j]if(arr[i][j]==1) {System.out.print(9+" ");}else {int ans=0;//计数for(int a=i-1;a<=i+1;a++) {//九空格for(int b=j-1;b<=j+1;b++) {if(a<0||a>=n||b<0||b>=m)continue;if(arr[a][b]==1)ans++;//九空格中存在数为1的,累加他们的和}}System.out.print(ans+" ");}}System.out.println();}}}

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

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

相关文章

3.14号arm

1. 计算机基础理论 1.1 计算机的组成 输入设备&#xff1a;将数据转换成计算机可以识别&#xff0c;存储&#xff0c;处理的形式&#xff0c;发送到计算机中 输出设备&#xff1a;将计算机对程序和数据的运算结果输送到外部的设备 存储器&#xff1a;用于将数据保存的模块。 …

【火猫TV】欧联:8强无弱队,意甲英超球队扎堆,利物浦和药厂优势很大!

2023-2024欧联杯八强正式出炉&#xff0c;马赛、本菲卡、勒沃库森、利物浦、西汉姆联、罗马、亚特兰大和AC米兰成功拿到了晋级名额&#xff0c;于是球迷们即将看到近20年竞争最激烈的欧联杯八强对决。虽然这些队伍实力有强有弱&#xff0c;但是能够拼到现在的球队没有弱旅&…

1335:【例2-4】连通块

【算法分析】 设数组vis&#xff0c;vis[i][j]表示(i,j)位置已经访问过。遍历地图中的每个位置&#xff0c;尝试从每个位置开始进行搜索。如果该位置不是0且没有访问过&#xff0c;那么访问该位置&#xff0c;并尝试从其上下左右四个位置开始搜索。在看一个新的位置时&#xff…

医疗设备控费系统防止私收、漏收、人情费

加19339904493&#xff08;康&#xff09; 医院完成信息化建设&#xff0c;不仅是一次技术性人深过信息化技术&#xff0c;医院能够更好地管理病患信息&#xff0c;提高诊断的准确性和效率&#xff0c;同时优化医疗资源的配置&#xff0c;降低医疗成本。在信息化的推动下&#…

Git概述及安装步骤

一、Git简介 Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。Git 易于学习&#xff0c;占地面积小&#xff0c;性能极快。它具有廉价的本地库&#xff0c;方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CV…

Linux下的多线程编程:原理、工具及应用(1)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Flower of Life—陽花 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶️ ☰ …

文献速递:深度学习乳腺癌诊断---使用深度学习改善乳腺癌组织学分级

Title 题目 Improved breast cancer histological grading using deep learning 使用深度学习改善乳腺癌组织学分级 01 文献速递介绍 乳腺癌组织学分级是乳腺癌中一个确立的临床变量&#xff0c;它包括来自三个方面的信息&#xff0c;即小管形成程度、核多态性和有丝分裂计…

IP证书有什么作用?怎么申请?

关于IP地址证书&#xff0c;它的主要作用有这么几个点&#xff1a; 1.验明正身&#xff1a;就像身份证一样&#xff0c;它可以证明某个服务器的IP地址是真的、合法的&#xff0c;让咱知道咱们连接的就是正确的服务器&#xff0c;而不是冒牌货。这样一来&#xff0c;就可以降低像…

【C++设计模式】策略模式

文章目录 前言一、策略模式是什么&#xff1f;二、策略模式的实现原理三、UML图四、代码实现总结 前言 策略模式是一种行为设计模式&#xff0c;它允许在运行时选择算法的行为。通过将每个算法封装到具有共同接口的独立类中&#xff0c;客户端可以在不改变自身代码的情况下选择…

Bugku MISC做题笔记

简单套娃DX 这一题需要对png图片的结构有所了解。详细可参考https://www.w3.org/TR/png/ 幸好每一张图片只有一个错误&#xff0c;逐步调试&#xff0c;就可以发现所有错误&#xff0c;修正即可。具体错误参看python程序中的注释&#xff1a; import ossrc_dir .\\XD\\ de…

微信每天通过好友上限是多少个呢?

微信每天通过好友上限是多少个呢&#xff1f; 1、新号和不活跃的号 微信新号是指注册不满15十五天&#xff0c;或者注册超过15天&#xff0c;但是没有好好养号的的账号。&#xff08;包括很多长期不活跃的账号&#xff0c;突然使用的情况&#xff09; 2、正常帐号 &#xf…

案例分析篇06:数据库设计相关28个考点(17~22)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

Scala--01--简介、环境搭建

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. Scala简介1.1 Scala是什么&#xff1f;官网&#xff1a; [https://scala-lang.org/](https://scala-lang.org/)官方文档&#xff1a; [https://docs.scala-lang.…

基于springboot+vue实现的大学计算机课程管理平台的设计与实现(全套资料)

一、系统架构 前端&#xff1a;vue | antv 后端&#xff1a;springboot | mybatis-plus 环境&#xff1a;jdk17 | mysql | maven | node | redis 二、代码及数据库 三、功能介绍 01. 登录页 02. 首页 03. 系统基础模块-用户管理 04. 系统基础模块-部门…

一个人做电商要怎么做?满足这三个条件,你也可以!

我是电商珠珠 现在电商平台很火&#xff0c;特别是短视频电商&#xff0c;很多从来没有接触过的新手会觉得自己一个人做不了&#xff0c;或者说投入成本大&#xff0c;会有很多人工费用&#xff0c;还要找货源找场地等。 其实&#xff0c;对于传统的电商来说&#xff0c;这些…

记一次Spring事务失效的发现与解决过程

一、事情起因是这样的 首先&#xff0c;我们是使用Spring mybatis 进行开发。 某功能在测试环境看到报错日志&#xff0c; 但是数据库里面的数据发生了变化&#xff0c;没有回滚。 执行数据库update 操作的方法上明确有 Transactional(rollbackFor Exception.class)的注解。…

蓝桥杯单片机快速开发笔记——HC573/HC138

一、原理分析 二、思维导图 三、代码参考 #include "HC573.h" #include "reg52.h"void Set_HC573(unsigned char channel, unsigned char dat) {P2 (P2 & 0x1f) | 0x00; //赋值之前&#xff0c;关闭全部锁存器P0 dat; //保存待设置…

阿里云和腾讯云2核4G服务器租用价格对比,选哪个好?

租用2核4G服务器费用多少&#xff1f;2核4G云服务器多少钱一年&#xff1f;1个月费用多少&#xff1f;阿里云2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年&#xff1b;腾讯云轻量2核4G服务器5M带宽165元一年、252元15个月、540元三…

长期护理保险可改善老年人心理健康 | CHARLS CLHLS CFPS 公共数据库周报(3.6)...

欢迎报名2024年“真实世界临床研究”课程&#xff01; 本周郑老师开讲&#xff1a;“真实世界临床研究”培训班&#xff0c;3月16-17日两天&#xff0c;欢迎报名&#xff01; CHARLS公共数据库‍ CHARLS数据库简介中国健康与养老追踪调查(China Health and Retirement Longitud…

多模态特征融合新突破!5大方法刷新顶会SOTA!

多模态融合可以应用于情感分析、身份验证、行为识别等多个领域&#xff0c;实现更精确的预测和判断。这其中&#xff0c;特征融合是多模态数据处理的核心环节&#xff0c;它不仅能够提高模型的性能&#xff0c;还能够增强数据的表达力&#xff0c;让模型能够更好地理解和处理现…