排序加 map 可以做。

/**
Runtime: 24 ms, faster than 79.61% of Java online submissions for Rank Transform of an Array.Memory Usage: 56.1 MB, less than 100.00% of Java online submissions for Rank Transform of an Array.
*/
class Solution {public int[] arrayRankTransform(int[] arr) {if (arr == null || arr.length == 0) {return new int[0];}int[] tmp = Arrays.copyOf(arr, arr.length);Arrays.sort(tmp);HashMap<Integer, Integer> map = new HashMap<>();int index = 1;for (int i=0; i<tmp.length; i++) {if (map.get(tmp[i]) != null) {continue;}map.put(tmp[i], index++);}tmp = null;int[] result = new int[arr.length];for (int i=0; i<arr.length; i++) {result[i] = map.get(arr[i]);}return result;}
}

实际上,每个数字的次序就是数组里小于该数字的数字数量,故可以使用一个数组保存小于某个数字的数字数量,由于数组下标是有序的,所以就可以不用排序。

/**
Runtime: 4 ms, faster than 98.68% of Java online submissions for Rank Transform of an Array.Memory Usage: 49.4 MB, less than 100.00% of Java online submissions for Rank Transform of an Array.
*/
class Solution {public int[] arrayRankTransform(int[] arr) {if (arr == null || arr.length == 0) {return new int[0];}int max = Integer.MIN_VALUE;int min = Integer.MAX_VALUE;for (int i : arr) {max = i > max ? i : max;min = i< min ? i : min;}int[] priorityOfNums = new int[max - min + 1];for (int i : arr) {priorityOfNums[i - min] = 1;}for (int i=1; i<priorityOfNums.length; i++) {priorityOfNums[i] += priorityOfNums[i-1];}int[] result = new int[arr.length];for (int i=0; i<result.length; i++) {result[i] = priorityOfNums[arr[i] - min];}return result;}
}

[LeetCode][easy]Rank Transform of an Array相关推荐

  1. LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] c++

    LeetCode 26 Remove Duplicates from Sorted Array [Array/std::distance/std::unique] <c++> 给出排序好的 ...

  2. LeetCode——Kth Largest Element in an Array

    LeetCode--Kth Largest Element in an Array Question Find the kth largest element in an unsorted array ...

  3. LeetCode - Easy - 169. Majority Element

    Topic Array Divide and Conquer Bit Manipulation Description https://leetcode.com/problems/majority-e ...

  4. LeetCode 33. Search in Rotated Sorted Array

    问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...

  5. Easy Data Transform for mac (Excel和CSV编程文件转换工具) v1.11.1激活版

    Easy Data Transform mac版是一款很优秀好用的Excel和CSV编程文件转换工具.Easy Data Transform功能强大,操作简单,使用后可以帮助用户更轻松便捷的转换表格文 ...

  6. leetcode easy problem set

     *勿以浮沙筑高台* 持续更新........     题目网址:https://leetcode.com/problemset/all/?difficulty=Easy 1. Two Sum [4m ...

  7. LeetCode 167. Two Sum II - Input array is sorted--Python解法

    题目地址:Two Sum II - Input array is sorted - LeetCode Given an array of integers that is already sorted ...

  8. LeetCode - Easy - 637. Average of Levels in Binary Tree

    Topic Tree Description https://leetcode.com/problems/average-of-levels-in-binary-tree/ Given the roo ...

  9. LeetCode - Easy - 14. Longest Common Prefix

    Topic String Description https://leetcode.com/problems/longest-common-prefix/ Write a function to fi ...

  10. LeetCode - Easy - 119. Pascal‘s Triangle II

    Topic Array Description https://leetcode.com/problems/pascals-triangle-ii/ Given an integer rowIndex ...

最新文章

  1. 牛客小白月赛25 补题+题解[A-J]
  2. 服务器返回数据为空,iOS 处理服务器返回数据中的null
  3. bootstrap3 商品列表_Bootstrap3基础 list-inline 无序列表横向显示
  4. 1121:计算矩阵边缘元素之和
  5. Jquery 温习,温故而知新,可以为师矣
  6. 机器学习库一:scikit-learn
  7. lombok有参构造注解_Java高效开发工具: Lombok
  8. Java基础结构语句和IDEA使用和数组
  9. Ubuntu 14.04中修复默认启用HDMI后没有声音的问题
  10. 模拟CMOS集成电路学习笔记——MOS器件物理基础
  11. 集成海康威视Sadp SDK实现获取设备参数配置
  12. 下载MDK5 Software Packs导入Keil5
  13. Qt界面显示OpenCV读取的图片
  14. Exception in thread main java.lang.NoClassDefFoundError: org/w3c/dom/Eleme
  15. 追求得到之日即其终止之时, 寻觅的过程亦即失去的过程。——村上
  16. Heka GeoIpDecoder 配置
  17. icesword介绍
  18. Revit中如何绘制轴线?CAD图纸转轴网操作
  19. (一)Android基础界面设计
  20. allegro中动态铜皮一键倒圆角

热门文章

  1. 数据签名 RSA算法
  2. 第十章 Scala 容器基础(二十二):合并有序集合
  3. 【Deep learning】NLP
  4. cisco用户隔离配置
  5. 高中学业水平测试计算机考试知识点,高中生物学业水平测试知识点归纳
  6. 使用rapid-framework继承jsp页面
  7. python测试面试题-python接口自动化+测试开发面试题
  8. mysql spool csv报错_Oracle使用spool快速导出超大表
  9. 得到 jason中 string 的值_简单高性能的Json解析器: Jason
  10. win7副本不是正版_征途正版官网版下载-征途正版手游官网版下载1.0