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

[数组排序] LCR 164. 破解闯关密码

文章目录

      • 1. 题目链接
      • 2. 题目大意
      • 3. 示例
      • 4. 解题思路
      • 5. 参考代码

1. 题目链接

LCR 164. 破解闯关密码 - 力扣(LeetCode)



2. 题目大意

描述:给定一个非负整数数组 nums。

要求:将数组中的数字拼接起来排成一个数,打印能拼接出的所有数字中的最小的一个。

说明

  • 0<nums.length≤100。
  • 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
  • 拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0。


3. 示例

输入: [10,2]
输出: "102"

输入:[3,30,34,5,9]
输出:"3033459"


4. 解题思路

本质上是给数组进行排序。假设 x、y 是数组 nums 中的两个元素。则排序的判断规则如下所示:

  • 如果拼接字符串 x+y>y+x,则 xx 大于 y,y 应该排在 x 前面,从而使拼接起来的数字尽可能的小。
  • 如果拼接字符串 x+y<y+x,则 x 小于 y,x 应该排在 y 前面,从而使拼接起来的数字尽可能的小。


5. 参考代码

class Solution {public String crackPassword(int[] password) {// 将整数数组转换为字符串数组String[] numsStr = new String[password.length];for (int i = 0; i < password.length; i++) {numsStr[i] = String.valueOf(password[i]);}// 使用自定义比较器对字符串数组进行排序Arrays.sort(numsStr, new Comparator<String>() {@Overridepublic int compare(String a, String b) {// 直接比较连接结果的大小return (a + b).compareTo(b + a);}});// 使用 StringBuilder 拼接字符串StringBuilder result = new StringBuilder();for (String str : numsStr) {result.append(str);}return result.toString();}}
http://www.lryc.cn/news/475456.html

相关文章:

  • 05 Django 框架模型介绍(一)
  • 【简道云 -注册/登录安全分析报告】
  • 【C++题解】1970. 判断是什么字符
  • Python自动化操作Word文档详解
  • 常用滤波算法(二)-中位值滤波法
  • HCIP--以太网交换安全(总实验)
  • C语言 | Leetcode C语言题解之第519题随机翻转矩阵
  • 《机器人SLAM导航核心技术与实战》第1季:第10章_其他SLAM系统
  • 《双指针篇》---快乐数
  • U盘引导丢失问题的处理办法
  • layui tree customSelet选中的内容重写,查找父级
  • Maven 插件
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制
  • K8S概念及其常见组件和整体架构
  • LabVIEW继电器视觉检测系统
  • linux操作系统进程
  • jeecgbootvue2菜单路由配置静态文件夹(public)下的html
  • PHP反序列化原生类字符串逃逸框架反序列化利用
  • 6.1、属性动画
  • v-model还可以作用于其他表单元素的使用
  • 最短路的求解
  • 四:java 基础知识(4)-- 异常 字符串
  • Uniapp 实现app自动检测更新/自动更新功能
  • 7.0、RIP
  • C#与C++结构体的交互
  • sql纵表转横表
  • 数据采集-Kepware OPCUA 服务器实现
  • 初识计算机网络
  • Oracle 第11章:异常处理
  • 导航栏渐变色iOS