每日一题(小白)模拟娱乐篇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 
相关推荐
仪器科学与传感技术博士17 分钟前
python:前馈人工神经网络算法之实战篇,以示例带学,弄明白神经网络算法应用的思路、方法与注意事项等
人工智能·python·深度学习·神经网络·算法·机器学习
东东最爱敲键盘36 分钟前
数据结构: 双向链表
数据结构
hqxstudying37 分钟前
SpringBoot启动项目详解
java·spring boot·后端
你我约定有三1 小时前
分布式微服务--Nacos作为配置中心(补)关于bosststrap.yml与@RefreshScope
java·分布式·spring cloud·微服务·架构
keepDXRcuriosity2 小时前
IDEA识别lombok注解问题
java·ide·intellij-idea
云边有个稻草人2 小时前
【C++】第二十一节—一文详解 | 红黑树实现(规则+效率+结构+插入+查找+验证)
算法·红黑树·红黑树的插入·红黑树的结构·红黑树完整代码·红黑树的效率·红黑树的查找
酷飞飞2 小时前
C语言的复合类型、内存管理、综合案例
java·c语言·前端
仟濹3 小时前
【C/C++】整数超过多少位时用「高精度」
c语言·c++·算法
宸津-代码粉碎机3 小时前
LLM 模型部署难题的技术突破:从轻量化到分布式推理的全栈解决方案
java·大数据·人工智能·分布式·python
都叫我大帅哥3 小时前
TOGAF实战解码:六大行业案例解析与成功启示
java