1005 继续(3n+1)猜想 (25 分) Java练习&PTA乙级 hashset数组 & arraylist自定义排序

华为OD机试真题Java实现【整型数组按个位值排序】真题+解题思路+代码(2022&2023 涉及的主要集合有Map和StringBuilder,主要的知识点包括Scanner类的使用、Java基础语法、集合框架以及异常处理等。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。试题来源:华为 OD 联盟整理收集。 阅读详情

1.  hashset 数组的运用

2. arraylist 自定义排序

 


import java.lang.reflect.Array;
import java.math.BigInteger;
import java.net.StandardSocketOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

import org.omg.CORBA.INTERNAL;


public class Main {
	public static int maxn = 100 + 7;
	public static int n;
	public static Set<Integer>[] st = new HashSet[maxn];
	
	public static void work(int id, int x) {
		st[id].add(x);
		if(x == 1) return;
		if(x%2 == 0) {
			work(id, x/2);
		}
		else {
			work(id, (3*x+1)/2);
		}
	}
	public static boolean ok(int id, int x) {
		// TODO Auto-generated method stub
		for(int i = 0; i < n; ++i) {
			if(i == id) continue;
			if(st[i].contains(x)) return false;
		}
		return true;
	}
	public static void init() {
		for(int i = 0; i <= n; ++i) {
			st[i] = new HashSet<>();
		}
	}
	
	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		n = in.nextInt(); 
		
		init();
		ArrayList<Integer> a = new ArrayList<>();
		for(int i = 1; i <= n; ++i) {
			int x = in.nextInt();
			a.add(Integer.valueOf(x));
		}
		
		for(int i = 0; i < n; ++i) {
			int x = a.get(i);
			work(i, x);
		}
		
		ArrayList<Integer> ans = new ArrayList<>();
		
		for(int i = 0; i < n; ++i) {
			int x = a.get(i);
			if(ok(i, x)) ans.add(x);
		}
		
		ans.sort(new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				// TODO Auto-generated method stub
				return o2.compareTo(o1);
			}
			
		});
		for(int i = 0; i < ans.size(); ++i) {
			if(i > 0) System.out.print(" ");
			System.out.print(ans.get(i));
		}
	}

}

 

华为OD机试 - 整型数组按个位值排序(C++ Java JavaScript Python C语言) 华为OD机试 - 整型数组按个位值排序 阅读详情

相关推荐

【华为OD机试真题2023B卷 JAVA&JS】整型数组按个位值排序

整型数组按个位值排序 给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。

qq_34465338的博客 1102

hdfs shell的基本操作和hdfsWeb查看文件

hdfs shell, hdfsWebhdfs基本操作查询命令创建新的空文件创建文件增加文件查看文件内容复制文件删除文件或文件夹重命名将源目录下的所有文件排序合并到一个本地文件 hdfs基本操作 查询命令 $ hadoop dfs -ls / 查询 / 目录下的所有文件和文件夹 $ hadoop dfs -ls -R 以递归的方式 创建新的空文件 hdfs dfs -mkdir /t...

wendaocp的博客 956

整型数组按个位值排序

已支持(Java & JS & Python & C & C++),考察排序

CSDN 6956

对整型数组进行排序

int compare_int(const void* a, const void* b) { int arg1 = *(const int*)a; int arg2 = *(const int*)b; if (arg1 &gt; arg2) { return 1; } else if (arg1 &gt; arg2) { return -1; } else { return 0; } } void show(int* arr, int len) { for (int .

weixin_58368590的博客 1130

java 实现基数排序

java 基数排序数组中的每个数别按个位、十位、百位…进行排序。 文章目录java 基数排序获取数中的每一位基本实现优化 获取数中的每一位 public static void main(String[] args){ int number = 23456; int bit; // 个位 System.out.print("该数的个位:"); bit = number % 10; System.out.p

weixin_46085748的博客 504

C语言基础

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

lanyue622的专栏 1282

【华为机试真题 JAVA】整型数组按个位值排序-100

给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。 当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。

weixin_52894047的博客 482

华为OD机试 - 整型数组按个位值排序(Python)

额,这道题,有点简单,应该就是考察数组排序,逻辑请看下面代码。

m0_46181452的博客 280

【华为OD】B\C卷真题:100%通过:整型数组按个位值排序 Python实现【思路+源码】

给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。相等值,要保持相对位置不变,那就得考虑使用稳定排序,使用冒泡排序即可。给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。输入输出示例仅供调试,后台判题数据一般不包含示例。

十年以上编程经验的干货分享 1386

华为od机试题7 真题

华为od机试题 真题

m0_46084322的博客 1072

华为OD机试 - 整型数组按个位值排序Java) | 机试题+算法思路+考点+代码解析 【2023

涉及的主要集合有Map和StringBuilder,主要的知识点包括Scanner类的使用、Java基础语法、集合框架以及异常处理等。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。试题来源:华为 OD 联盟整理收集。

坚果的博客 1030

华为OD机试 - 最低位排序(Python)| 真题+思路+考点+代码+岗位

数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位。为原创内容,该部版权由 OD 联盟共同拥有,并授权组内成员发布。给定一个非空数组(列表),起元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变,很简单的排序题,使用排序函数即可完成。直接使用 sort 函数解决问题。试题来源:华为 OD 联盟整理收集。给定一个非空数组(列表)👉 助你解开所有机试题。

坚果的博客 1758

2023华为OD机试真题 Java【数字最低位排序】【最低位排序

给定一个非空数组(列表)起元素数据类型为整型请按照数组元素十进制最低位从小到大进行排序十进制最低位相同的元素,相对位置保持不变当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位输入描述。给定一个非空数组(列表)其元素数据类型为32位有符号整数数组长度为[1.10001

qq_38240523的博客 208

华为OD机试 - 整型数组按个位值排序Java

额,这道题,有点简单,应该就是考察数组排序,逻辑请看下面代码。

qq_34143141的博客 747

【华为OD机试题】最低位排序 Java代码实现

最低位排序 Java代码实现,个人思路实现代码。记录更强的自己!

Jilit_jilit的博客 217

100%通过率】华为OD机试真题 C语言【数字最低位排序】【最低位排序

2023华为OD机试真题 C语言【数字最低位排序】【最低位排序】 给定一个非空数组(列表) 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素,相对位置保持不变 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位

MISAYAONE的博客 1619

用python实现将数组元素按从小到大的顺序排列

def findSmallest(arr): smallest = arr[0]#将第一个元素的值作为最小值赋给smallest smallest_index = 0#将第一个值的索引作为最小值的索引赋给smallest_index for i in range(1, len(arr)): if arr[i] < smallest:#对列表arr中的元素进行

llx1026的博客 1万+

华为OD机试 -最低位排序Java) | 机试题+算法思路+考点+代码解析 【2023

比较器对象的实现方式为匿名内部类,重写了compare方法和getKey方法来确定排序规则。在compare方法中,使用getKey方法计算出每个数字的个位数,作为它们的排序依据。而在getKey方法中,则是根据输入的数字计算出其个位数,如果该数字为负数,则先取绝对值再计算。然后通过定义一个比较器对象,以每个数字的个位数为排序关键字进行排序。当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位。给定一个非空数组(列表),起元素数据类型为整型,十进制最低位相同的元素,相对位置保持不变,

坚果的博客 669
上一篇: 1004 成绩排名 (20 分) Java练习&PTA乙级 class代替结构体(&排序)
下一篇: 1006 换个格式输出整数 (15 分) Java练习&PTA乙级
Joey丶sunk
博客等级 码龄10年 95粉丝 650原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值