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

整型数组按个位值排序 - 华为OD统一考试(C卷)

OD统一考试(C卷)

分值: 100分

题解: Java / Python / C++

alt

题目描述

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

输入描述

给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1,1000]

输出描述

输出排序后的数组

示例1

输入:
1,2,5,-21,22,11,55,-101,42,8,7,32输出:
1,-21,11,-101,2,22,42,32,5,55,7,8

题解

这道题目是关于排序算法的问题,具体来说是按照数组元素的十进制最低位及元素索引位置进行排序。、

解题思路

  1. 首先,读入非空数组,将数组中的每个元素按照题目要求计算其十进制最低位,并记录下来该元素的索引位置和原始值。
  2. 创建一个辅助数组或列表,将每个元素的十进制最低位、索引位置和原始值组成一个元组,放入辅助数组中。
  3. 使用排序算法对辅助数组进行排序,排序规则是按照十进制最低位从小到大排序,如果最低位相同,则按照索引位置从小到大排序。
  4. 排序完成后,从辅助数组中提取原始值,即为排序后的结果。

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
/*** @author code5bug*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] nums = Arrays.stream(scanner.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();ArrayList<int[]> arr = new ArrayList<>();for (int i = 0; i < nums.length; i++) {int t = nums[i];int d = (t < 0) ? (-t) % 10 : t % 10;arr.add(new int[]{d, i, t});}// 按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变(坐标升序)Collections.sort(arr, (a, b) -> {if (a[0] == b[0]) {return Integer.compare(a[1], b[1]);} else {return Integer.compare(a[0], b[0]);}});for (int i = 0; i < arr.size(); i++) {System.out.print(arr.get(i)[2]);if (i + 1 == arr.size())System.out.println();elseSystem.out.print(',');}}
}

Python

def main():nums = list(map(int, input().split(",")))arr = []for idx, t in enumerate(nums):d = (-t) % 10 if t < 0 else t % 10  # 最低位元素值arr.append((d, idx, t))arr.sort()rs = list(map(lambda x: x[2], arr))print(*rs, sep=',')if __name__ == "__main__":main()

C++

#include <bits/stdc++.h>
using namespace std;int main()
{// 元素值 vector<int> {最低位元素值, 元素在原数组中的索引位置, 数组中元素值}vector<vector<int>> arr;int t, idx = 0;while (cin >> t) {int d = (t < 0) ? (-t) % 10 : t % 10;   // 最低位元素值arr.push_back({d, idx, t});if (cin.peek() == ',') cin.ignore();idx++;}sort(arr.begin(), arr.end());for (size_t i = 0; i < arr.size(); i++) {cout << arr[i][2];if (i + 1 == arr.size())cout << endl;elsecout << ',';}return 0;
}    

有考友通过专栏已经快速通过机考✍,都是原题哦, 🎁🎁🎁 立即订阅

希望这个专栏不仅能帮您成功通过华为机试,还能让您熟练掌握算法。

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

相关文章:

整型数组按个位值排序 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定一个非空数组(列表)&#xff0c;其元素数据类型为整型&#xff0c;请按照数组元素十进制最低位从小到大进行排序&#xff0c;十进制最低位相同的元素&#xf…...

【React】Diff算法

1. React15 Diff算法&#xff08;递归进行&#xff09; 一句话概括&#xff1a;新虚拟DOM和旧虚拟DOM对比&#xff0c;找出差异&#xff0c;根据差异更新真实DOM Diff过程描述&#xff1a; 1. 树比较(DOM) 同层节点之间相互比较&#xff0c;不会跨层级比较。&#xff08;当发现…...

【物联网】Modbus 协议及应用

Modbus 协议简介 QingHub设计器在设计物联网数据采集时不可避免的需要针对Modbus协议的设备做相关数据采集&#xff0c;这里就我们的实际项目经验分享Modbus协议 简介 Modbus由MODICON公司于1979年开发&#xff0c;是一种工业现场总线协议标准。1996年施耐德公司推出基于以太…...

Docker容器引擎

1、Docker是什么。 Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的"虚拟机"。Docker的logo设计为蓝色鲸鱼&#xff0c;拖着许多集装箱。鲸鱼可以看作宿主机&#xff0c;而集装箱可以理解为相互隔离的容器&#xff0c;每个集装箱中都包含自己的应…...

2.28线程

注意被抢占时是返回原队列&#xff0c;优先级不变。越往下优先级越小。往下没有优先级时&#xff0c;在最低的优先级队列里循环 到达了不一定会被服务&#xff0c;会进入就绪态进行等待 。核心等式就是周转时间运行时间等待时间&#xff0c;带权就是周转/运行&#xff0c; 随着…...

TCP/IP ⽹络模型

TCP/IP ⽹络模型 对于同⼀台设备上的进程间通信&#xff0c;有很多种⽅式&#xff0c;⽐如有管道、消息队列、共享内存、信号等⽅式&#xff0c;⽽对于不同设备上的进程间通信&#xff0c;就需要⽹络通信&#xff0c;⽽设备是多样性的&#xff0c;所以要兼容多种多样的设备&am…...

云原生:重塑未来应用的基石

随着数字化时代的不断深入&#xff0c;云原生已经成为了IT领域的热门话题。它代表着一种全新的软件开发和部署范式&#xff0c;旨在充分利用云计算的优势&#xff0c;并为企业带来更大的灵活性、可靠性和效率。今天我们就来聊一聊这个热门的话题&#xff1a;云原生~ &#x1f4…...

蓝桥杯day4刷题日记

P8605 [蓝桥杯 2013 国 AC] 网络寻路 思路来源于https://www.luogu.com.cn/article/iat8irsf #include <iostream> using namespace std; int n,m; int q[10010]; int v[100010],u[100010]; long long res;int main() {cin>>n>>m;for(int i0;i<m;i){cin…...

[Qt学习笔记]Qt下使用Halcon实现采图时自动对焦的功能(Brenner梯度法)

目录 1、介绍2、实现方法2.1 算法实现过程2.2 模拟采集流程 3、总结4、代码展示 1、介绍 在机器视觉的开发中&#xff0c;现在有很多通过电机去做相机的聚焦调节&#xff0c;对比手工调节&#xff0c;自动调节效果更好&#xff0c;而且其也能满足设备自动的需求&#xff0c;尤…...

常州IGM机器人RTE497的日常维修保养方法

一、IGM机器人RTE497日常检查 每日工作前&#xff0c;进行以下检查&#xff1a; 外观检查&#xff1a;确认IGM机器人RTE497本体无明显损伤&#xff0c;各部件连接稳固。 电缆检查&#xff1a;检查所有电缆、气管等是否完好&#xff0c;无磨损、无挤压。 润滑检查&#xff1a;确…...

如何利用机器学习和Python编写预测模型来预测设备故障

预测设备故障是机器学习和数据科学的一个常见问题&#xff0c;通常可以通过以下几个步骤来解决&#xff1a; 1. 数据收集 首先&#xff0c;需要收集与设备运行相关的数据&#xff0c;包括&#xff1a; 设备的历史数据环境数据&#xff08;如温度、湿度等&#xff09;使用时间…...

mysql部署(2)主从复制

在前面的基础上&#xff0c;现有26、41两个mysql8的实例&#xff0c;下面以26为主41为从搭建主从复制&#xff1a; 机器主从端口号root密码主从复制账号密码xxx.xx.xxx.26主3306Mysql#26user1/user1#26xxx.xx.xxx.41从3306Mysql#41 一、master主库配置 1、修改mysql配置文件…...

FX-数组的使用

1一维数组 1.1一维数组的创建和初始化 1.1.1数组的创建 //代码1 int arr1[10]; char arr2[10]; float arr3[1]; double arr4[20]; //代码2 //用宏定义的方式 #define X 3 int arr5[X]; //代码3 //错误使用 int count 10; int arr6[count];//数组时候可以正常创建&#xff1…...

springboot283图书商城管理系统

图书商城管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理…...

FFmpeg-- c++实现:音频流aac和视频流h264封装

文章目录 流程api核心代码muxer.hmuxer.cpp aac 和 h264 封装为视频流&#xff0c;封装为c的Muxter类 流程 分配视频文件上下文 int Init(const char *url); 创建流&#xff0c;赋值给视频的音频流和视频流 int AddStream(AVCodecContext *codec_ctx); 写视频流的head int Se…...

单片机烧录方式,JTAG,ISP,SWD,

常见的词汇 参考 ISP&#xff1a;In System Programing&#xff0c;在系统编程 IAP&#xff1a;In Application Programing&#xff0c;在应用编程 ICP&#xff1a;In Circuit Programing&#xff0c;在电路编程 ICSP全称是In Circuit Serial Programming JTAG(Joint Test Act…...

【项目管理后台】Vue3+Ts+Sass实战框架搭建一

项目管理后台 建立项目最好是卸载Vetur 新建.env.d.ts文件安装Eslint安装校验忽略文件添加运行脚本 安装prettier新建.prettierrc.json添加规则新建.prettierignore忽略文件 安装配置stylelint新建.stylelintrc.cjs 添加后的运行脚本配置husky配置commitlint配置husky 强制使用…...

基于python 变配电室运行状态评估与预警系统flask-django-nodejs-php

变配电室电气设备运行状态和环境信息缺乏必要的监测评估预警手段&#xff0c;如有一日遭遇突发情况&#xff0c;将危及电气设备安全稳定运行,易造成设备损坏和电力供应中断[2]。 目前&#xff0c;我国变配电室常采用无人管理的室内站设计方案&#xff0c;长期以来变配电室运维工…...

【自记录】VS2022编译OpenSSL1.0.2u

因为突然要编译一个老工程&#xff0c;老工程里面用到了OpenSSL 1.0.x。 于是官网下载了最后一个1.0.x版本1.0.2u。 1 下载安装Perl 去Perl官网下载即可。 使用vcpkg直接安装也可以&#xff0c;比前者更方便 vcpkg install perl #根据实际路径调整 set PATHD:\vcpkg\downloa…...

ES代替品:轻量级搜索引擎MeiliSearch

痛点 虽然Elasticsearch足够灵活强大、扩展性和实时性也较好。但是对于中小型项目来说&#xff0c;Elasticsearch还是显得有些庞大&#xff0c;对硬件设备的要求也较高。那么&#xff0c;在要求不是很高的情况下&#xff0c;我们可以考虑另一种搜索引擎方案&#xff1a;MeiliSe…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...