我是靠谱客的博主 甜美奇异果,这篇文章主要介绍MetaApp后端笔试算法题,现在分享给大家,希望可以做个参考。

题目
对一个整数数组,将数组中的元素替换成它们排序(从大到小排序)后的序号,规定序号从4开始编号(包括4)并依次递增(元素相等则序号相等),返回这个数组
例子
input: [4,2,3,1]
output:[4,6,5,7]
图片分析
在这里插入图片描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class Question1 { public static void main(String[] args) { int[] arr = new int[]{4, 2, 3, 1}; Question1 q = new Question1(); int[] nums = q.method(arr); for (int i = 0; i < nums.length; i++) { System.out.println(nums[i]); } } public int[] method(int[] nums) { int[] arr = new int[nums.length]; for (int i = 0; i < nums.length; i++) { arr[i] = nums[i]; } //排序 从大到小 for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] < arr[j + 1]) { int x = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = x; } } } //定义一个数组qqq 存放arr中元素的次序 int[] qqq = new int[arr.length]; for (int i = 0; i < arr.length; i++) { //qqq中第一个元素 值为4 if (i == 0) { qqq[i] = i + 4; } else { //arr中第i个元素 与i-1个元素 相等,则qqq中 第i个元素 = 第i-1个元素 if (arr[i] == arr[i - 1]) { qqq[i] = qqq[i - 1]; } //否则 qqq中第i个元素值 = qqq中第i-1个元素值 + 1 else { qqq[i] = qqq[i - 1] + 1; } } } //键值对存放数组元素 和 其对应次序 Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < arr.length; i++) { map.put(arr[i], qqq[i]); } for (int i = 0; i < nums.length; i++) { int x = map.get(nums[i]); nums[i] = x; } return nums; } }

最后

以上就是甜美奇异果最近收集整理的关于MetaApp后端笔试算法题的全部内容,更多相关MetaApp后端笔试算法题内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部