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

每日一题(小白)模拟娱乐篇27

由题意可以得知这是一道暴力+模拟的题目,我们只需要根据题意说的模拟整个过程即可。首先需用循环接收n个数字,每次判断这个数字是否出现过,若没有出现则为对应的负值,若出现过则需要将这个坐标减去之前坐标的值再减一返回(因为计算的是两个之间的距离,需要在坐标基础上再减一),则需要两个对应的数据结构存储相应的值,为了使用方便我们用临时变量或者数组存放原数组,用ArrayList存放新数组,因为java里ArrayList自带了很多方法直接使用很便捷。

①接收数字n

②读入n个数字,用临时变量存储(也可以放进数组)

③读入后与使用集合的contains方法,若包含则算出距离放进arr数组,不包含则将这个数字的负值放进arr数组

④依次进行,直到n次循环结束

⑤输出结果

代码如下👇

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n=scan.nextInt();//数组容量
		int arr[]=new int[n];//数组1存放结果
		ArrayList<Integer> arrayList=new ArrayList<>();//数组2存放原数组中间状态
		for (int i = 0; i < n; i++) {
			int t=scan.nextInt();//临时变量
			if (arrayList.contains(t)) {//在数组中寻找临时变量
				arr[i]=arrayList.size()-arrayList.indexOf(t)-1;//计算距离
				arrayList.remove((Object)(t));//删除多余的元素
				arrayList.add(t);添加新值
			}else {
				arr[i]=-t;//负值
				arrayList.add(t);//添加到数组2
			}
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");//输出结果
		}
			    
		scan.close();
	}

测试用例:

5
1 2 2 1 2
-1 -2 0 1 1 

相关文章:

  • router.js 中使用国际化
  • 【AI论文】OLMoTrace:将语言模型输出追溯到万亿个训练标记
  • Spring配置方式演进:从XML到注解,构建灵活高效的开发体系
  • 基于数字水印的公文流转系统设计与实现
  • Java的关键字、标识符与数据类型详解
  • 内联汇编知识点earlyclobber=
  • Windows启动总是卡在LOGO画面有哪些原因
  • Java 设计模式:装饰者模式详解
  • 阿里云服务迁移实战: 02-服务器迁移
  • 作为一名java技术博主如何突围
  • 大模型技术发展与应用趋势分析
  • FFMPEG大文件视频分割传输教程,微信不支持1G文件以上
  • Git 标签
  • C++学习之ORACLE③
  • 龙虎榜——20250411
  • 触觉智能RK3506核心板,工业应用之EtherCAT总线
  • 使用 nano 文本编辑器修改 ~/.bashrc 文件与一些快捷键
  • 电脑和手机磁盘将满的处理办法
  • C++学习之密码学知识
  • 你所拨打的电话是空号?手机状态查询API
  • 医疗美容医院网站建设/公关公司一般收费标准
  • 企业网站建设上市公司/下载百度推广app
  • 做网站必要性/济南seo优化外包服务
  • 网站建设公司管理流程/市场调研报告范文
  • 做网站支持提现支付宝/郑州seo网站排名
  • 简单代码大全/seo在线优化工具