2024年Java最全LeetCode - 506 - 相对名次 - java(1),熬夜整理蚂蚁金服Java高级笔试题

总目录展示

该笔记共八个节点(由浅入深),分为三大模块。

高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。该笔记将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面重点介绍。

一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。因此,将用一个节点来专门讲解如何设计秒杀减库存方案。

高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。笔记的最后,将带你思考可以从哪些环节来设计兜底方案。


篇幅有限,无法一个模块一个模块详细的展示(这些要点都收集在了这份《高并发秒杀顶级教程》里),麻烦各位转发一下(可以帮助更多的人看到哟!)

由于内容太多,这里只截取部分的内容。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 做法

    • 先获得运动员人数

    • 将金银铜三奖牌,放在一起做一个数组

    • 使用二维数组 来 存储运动员得分情况 和 给运动员编号。(重点)

    • 对二维数组进行排序(降序:按得分从高到低排序)

    • 发奖牌 (重点)

  • 代码如下

  • 另外 附加 一个程序 我自己 加了个 循环输入

题目条件

===================================================================

在这里插入图片描述


做法

=================================================================

先获得运动员人数


在这里插入图片描述


将金银铜三奖牌,放在一起做一个数组


在这里插入图片描述

在这里插入图片描述


使用二维数组 来 存储运动员得分情况 和 给运动员编号。(重点)


有的人可能会说 一维数组的元素为每个运动员的得分,下标看作运动员编号,为什么还要创建一个二维数组?

这是我后面需要将按照他们的得分排序,且它的编号不变/下标不变。 一维数组去排序的话,每个运动员的成绩虽然排序成功了,但是每个运动员原先的 编号/下标 改变了,因为一维数组的下标是不会变的。

而二维数组将 运动员的名词以数组元素的形式存储,所以即使调换位置,也不会印象运动员的编号。

别懵逼,跟着我走,你会知道为什么的,先理解这么个概念

在这里插入图片描述


对二维数组进行排序(降序:按得分从高到低排序)


在这里插入图片描述


发奖牌 (重点)


在这里插入图片描述


代码如下

===================================================================


class Solution {

    public String[] findRelativeRanks(int[] score) {

        int n = score.length;

        String[] str1 = {"Gold Medal","Silver Medal","Bronze Medal"};

        int[][] arr = new int[n][2];// n行 2列 的二维数组

        for(int i = 0;i < n;i++){

            arr[i][0] = score[i];//将运动员得分存入二维数组每一行一维数组的0下标位置

            arr[i][1] = i;// //将运动员编号存入二维数组每一行一维数组的1下标位置

        }



        Arrays.sort(arr,(a,b)->b[0]-a[0]);

        String[] str2 = new String[n];// 记录 每个运动的名次

        for(int i = 0;i < n;i++ ){

            if(i<3){//  由于 arr 是 降序,所以前面三名运动员,是 第 1 ~ 第3名

                str2[arr[i][1]] = str1[i];

            }else{

                str2[arr[i][1]] = Integer.toString(i+1);

            }



        }

        return str2;

    }



### 最后

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面

小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

![image](https://img-blog.csdnimg.cn/img_convert/c3bcd432dc9d306b7b6c410ba3db692f.webp?x-oss-process=image/format,png)

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

![image](https://img-blog.csdnimg.cn/img_convert/f1ba194548cfc5444b392fc76107c689.webp?x-oss-process=image/format,png)

> 全都是一丢一丢的收集整理纯手打出来的


更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

![image](https://img-blog.csdnimg.cn/img_convert/a9f4e8d51ce8b9b5bf4f4786d6838cce.webp?x-oss-process=image/format,png)

![image](https://img-blog.csdnimg.cn/img_convert/57da82161ad8426f5a1e71afa61e6b3e.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

54995)]

[外链图片转存中...(img-P2edlUmD-1714865454995)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618154847)**

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值