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

学习总结!

 java目前学习到了类的实例化:
类:描述一种事物的定义,是抽象的概念
实例:该事物的一个具体的个体,是具体的东西
举例:
世界上人很多,可以定义一个Person类:

Public Person
{Public String Name {get; set;}Public String Age {get; set;}
}

 这是类的创建。
每个人又是有区别的,那我们就可以根据Person类来创建不同的人,比如说:

Person p1 = New Person() { Name = "A", Age = "22" }
Person p2 = New Person() { Name = "B", Age = "23" }

这就是类的实例化。
用类的定义来创建一个实例,就叫做类的实例化。 

用new语句创建对象,这是最常见的创建对象的方法。 

算法题:

 输入测试用例数t,每个例子包括两个4个数字的整数(由1到9组成),一个为源,另外一个为目标。每次可以将其中任何一个数字+1或者-1运算,并且规定1-1=9,9+1=1;也可以将相邻2位数进行交换。问最少需要变换几次,才能从源变为目标 该问题可以用BFS来解决。在BFS搜索过程中,出现过的4位数就不必再试探了,因为再用这个4位数变下去其次数不可能比上次开始的变换次数少。

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
char str[2][5];
int target[4];
struct node{int step;int a[4];
};
bool vis[10][10][10][10];
int bfs()
{node now,next1;for(int i=0;i<4;i++){target[i]=str[1][i]-'0';now.a[i]=str[0][i]-'0';}memset(vis,false,sizeof(vis));queue<node>q;now.step=0;q.push(now);bool flag;while(q.size()){node now=q.front();q.pop();flag=true;for(int i=0;i<4;i++){if(now.a[i]!=target[i]){flag=false;break;}}if(flag){return now.step;}for(int i=0;i<4;i++){next1=now;if(now.a[i]==9)next1.a[i]=1;elsenext1.a[i]=now.a[i]+1;if(!vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]){vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]=true;next1.step=now.step+1;q.push(next1);}}for(int i=0;i<4;i++){next1=now;if(now.a[i]==1)next1.a[i]=9;elsenext1.a[i]=now.a[i]-1;if(!vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]){vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]=true;next1.step=now.step+1;q.push(next1);}}for(int i=0;i<3;i++){next1=now;next1.a[i]=now.a[i+1];next1.a[i+1]=now.a[i];if(!vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]){vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]=true;next1.step=now.step+1;q.push(next1);}}}return -1;
}
int main()
{int t;cin>>t;while(t--){cin>>str[0]>>str[1];cout<<bfs()<<endl;}return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 用html画一个烟花特效
  • Java练习:进制转换、日期计算、乘法表两种实现
  • GPT4.0
  • 在linux中展示本月最后一个周五的日期
  • 【C语言进阶篇】编译和链接
  • C语言从入门到实战----数据在内存中的存储
  • ETH 智能合约Gas文章整理
  • JavaScript、ES6与微信小程序之间的联系:工具箱、升级与新房子
  • C语言:文件操作解析
  • 用go实现一个任务调度类 (泛型)
  • 回归预测 | Matlab基于SAO-LSTM雪消融算法优化长短期记忆神经网络的数据多输入单输出回归预测
  • springboot项目
  • OpenCV4.9.0开源计算机视觉库安装教程
  • SQL注入四-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件
  • 第 1 章 信息化和信息系统 -4
  • 【css3】浏览器内核及其兼容性
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 2017-08-04 前端日报
  • CSS 专业技巧
  • flutter的key在widget list的作用以及必要性
  • HTTP中的ETag在移动客户端的应用
  • java8-模拟hadoop
  • js作用域和this的理解
  • leetcode386. Lexicographical Numbers
  • Puppeteer:浏览器控制器
  • Python中eval与exec的使用及区别
  • quasar-framework cnodejs社区
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue中实现单选
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 记一次删除Git记录中的大文件的过程
  • 深入浏览器事件循环的本质
  • 阿里云服务器如何修改远程端口?
  • 积累各种好的链接
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # centos7下FFmpeg环境部署记录
  • (13)Hive调优——动态分区导致的小文件问题
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (算法)前K大的和
  • (未解决)macOS matplotlib 中文是方框
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)Linux下编译安装log4cxx
  • .bat批处理(一):@echo off
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net 7 上传文件踩坑
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET国产化改造探索(一)、VMware安装银河麒麟