HDU2020——绝对值排序(java实现,使用map)
Question Description

Input

Output


Sample Input

Sample Output

解题思路简述:
在接收每一个数组的过程中,将负数及其绝对值以键值对的形式存入map(先绝对值,后负数)(因为题目有说“题目保证对于每一个测试实例,所有的数的绝对值都不相等。”)
然后数组中实际存储的是绝对值而不是负数
然后将数组通过冒泡排序降序排序
最后遍历数组,同时查询map中是否有相应键值对,有的话就将该项变为负数
然后打印_完成
源码:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner; public class Main{
static void bubble_decending_order(int[] arr){
boolean flag = true;
for(int i =1;i<arr.length;++i){
for(int j=0;j<arr.length-i;++j){
if(arr[j]<arr[j+1]){
flag = false;
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
if(flag){
break;
}
}
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true){
int count = sc.nextInt();
if(count==0) break;
int[] data = new int[count];
Map<Integer,Integer> map = new HashMap<>();
for(int i = 0;i<count;++i){
data[i] = sc.nextInt();
if(data[i]<0)
map.put(Math.abs(data[i]),data[i]);
data[i] = Math.abs(data[i]);
}
bubble_decending_order(data);
for(int i = 0;i<data.length;++i){
if(map.containsKey(data[i])){
data[i] = map.get(data[i]);
}
}
for(int i = 0;i<data.length;++i){
System.out.print(data[i]);
if(i+1!=data.length)
System.out.print(" ");
}
System.out.println(); }
}
}
hdoj已通过
希望对大家有所帮助
以上
HDU2020——绝对值排序(java实现,使用map)的更多相关文章
- 【Java进阶】---map集合排序
map集合排序 这篇文章讲的不仅仅是map排序,比如把对象按某一属性排序,它都可以解决这些问题. 比如,有N个对象,每个对象有个属性就是成绩,成绩分:优秀,良好,合格.那我们如何按 ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- 黑马程序员——JAVA基础之Map集合
------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...
- HDOJ2020绝对值排序
绝对值排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- JAVA中关于Map的九大问题
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的.下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题. 0.将Map转换为List类型 在java中Map接口提 ...
- (7)Java数据结构--集合map,set,list详解
MAP,SET,LIST,等JAVA中集合解析(了解) - clam_clam的专栏 - CSDN博---有颜色, http://blog.csdn.net/clam_clam/article/det ...
- (qsort)绝对值排序
绝对值排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- java中的Map
Java8增强的Map集合 Map接口中定义了如下常用的方法. void clear():删除该Map对象中的所有key-value对. boolean containsKey(Object key) ...
- java json与map互相转换(二)
java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...
随机推荐
- 分布式服务追踪:Spring Cloud Sleuth
最近在学习Spring Cloud的知识,现将分布式服务追踪:Spring Cloud Sleuth 的相关知识笔记整理如下.[采用 oneNote格式排版]
- C#设计模式学习笔记:(4)建造者模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7614630.html,记录一下学习过程以备后续查用. 一.引言 在现实生活中,我们经常会遇到一些构成比较复杂 ...
- Mysql连接字符,字段函数concat()
Mysql连接字符,字段函数concat() 可将多个字符串或字段连接,多个参数以逗号隔开 select concat('现在是:',new_date) from work
- CentOS7安装Python3.6.8
1.首先通过yum安装python可能用到的依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel ...
- 数据库MySQL之show processlist
在实际项目开发中,如果我们对数据库的压力比较大,比如有大批量的查询或者插入等sql,尤其是多线程插入等情况,针对部分执行比较慢的sql,我们可以将其kill掉,常用的一个命令就是show proces ...
- Android9.0 Camera2 横屏问题修改记录
vendor\mediatek\proprietary\packages\apps 目录下有三份相机源码 分别是 Camera. Camera1. Camera2 通过查看 mk 发现通过 ifeq ...
- 使用FRP做内网穿透
Github地址:https://github.com/fatedier/frp 什么是FRP? frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 h ...
- 自适应阈值化操作:adaptiveThreshold()函数
在图像阈值化操作中,更关注的是从二值化图像中,分离目标区域和背景区域,但是仅仅通过设定固定阈值很难达到理想的分割效果.而自适应阈值,则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值.这样 ...
- CF1093E Intersection of Permutations [分块 +bitset]
大家好, 我非常喜欢暴力数据结构, 于是就用分块A了此题 分块题,考虑前缀和 \(b_i\) 表示 bitset 即 \(0\) ~ $i $ 出现过的数字,然后考虑直接暴力复制块然后前缀和,修改也很 ...
- 阻止a链接跳转的点击事件
<a href="http://www.baidu.com" id="btn">按钮</a> <script> docume ...