You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

超时问题|找到给定分数数组中玩家的排名

题目描述: 给定n个玩家的分数分别存储在scores数组中。请编写一个函数,找出特定玩家的排名并返回。如果有多个玩家分数相同,则按照玩家的编号升序排序。

思路:

  1. 首先,为了避免重复计算,我们可以预处理得到scores数组的排序后的下标数组sortedIndex。这样,在后续判断中,每次只需要查找特定玩家的下标所对应的排名即可。
  2. 对于一个特定玩家,我们可以使用二分查找法找到该玩家的分数对应的下标index,然后再查询sortedIndex数组中前面有多少个元素比该下标小(即有多少个元素比该玩家分数高)。

代码示例:

def findRank(scores, player):
  n = len(scores)
  # 预处理分数数组的下标排序
  sortedIndex = sorted(range(n), key=lambda i: scores[i], reverse=True)
  
  # 二分查找找到特定玩家的下标
  left, right = 0, n - 1
  while left < right:
    mid = (left + right) // 2
    if scores[sortedIndex[mid]] >= player:
      left = mid + 1
    else:
      right = mid
  index = left if scores[sortedIndex[left]] == player else left - 1
  
  # 统计排名
  rank = 1
  for i in range(index-1, -1, -1):
    if scores[sortedIndex[i]] == scores[sortedIndex[index]]:
      rank += 1
    else:
      break
  return rank

时间复杂度:O(nlogn),其中n为分数数组的大小。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

Kafka 消息传递详细研究及代码实现|社区征文

// 超时限制 msproperties.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 60000);// 缓冲区大小properties.put(ProducerConfig.BUFFER_MEMORY_CONFIG, 33554432);// key/value 的序列化类properties.put(Pro... 但查找起来需要消耗更多时间。*[稠密索引与稀疏索引_Jeaforea的博客-CSDN博客_稠密索引和稀疏索引](https://blog.csdn.net/jeaforea/article/details/61420445)*注:稀疏索引不宜太过稀疏或密集,以免增大查找成本...

万字长文带你漫游数据结构世界|社区征文

找到较为适合当前问题场景的数据结构,将数据之间的关系表现在存储上,计算的时候可以较为高效的利用适配的算法,那么程序的运行效率肯定也会有所提高。常用的4种数据结构有:- 集合:只有同属于一个集合的关系,没... 查找的时候,一般都是使用`=`或者`!=`,在折半查找或者其他范围查询的时候,可能会使用`<`和`>`,理想的时候,我们肯定希望不经过任何的比较,直接能定位到某个位置(存储位置),这种在数组中,可以通过索引取得元素。那么,...

如何利用友盟平台定位安卓端的程序异常 | 社区征文

**问题 1. 错误: 程序包 com.umeng.commonsdk 不存在**- - **问题 2. SDK 集成好后,监控平台没有看到相关的统计数据**- - **问题 3. 报错:Installation did not succeed. The application could not be i... 里边有错误的具体明细,比如下图所显示的错误原因是数组越界:ArrayIndexOutOfBoundsException,具体的代码位置在文件 UappActivity.java 的第 93 行。![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1f...

基于 FFmpeg 实现一个数据流风格的视频处理工具 | 社区征文

return urls.ToArray();}```` 其中,入参是直播流 id,这里因为我们使用了 trtc 的旁路直播,所以 streamid 就是房间号。SetStep 方法的左右是记录当前执行的步骤,当程序异常退出后,可以从记录到的位置... 这里主要是使用Downloader进行下载,代码就不再赘述,主要是配置一些下载参数,如分块下载,快捷键,每个下载块的字节数,超时时间等,大家如果对downloader的使用感兴趣,可以到官方仓库查看👉: 这里放一张执行截图。![...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

超时问题|找到给定分数数组中玩家的排名 -优选内容

Kafka 消息传递详细研究及代码实现|社区征文
// 超时限制 msproperties.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 60000);// 缓冲区大小properties.put(ProducerConfig.BUFFER_MEMORY_CONFIG, 33554432);// key/value 的序列化类properties.put(Pro... 但查找起来需要消耗更多时间。*[稠密索引与稀疏索引_Jeaforea的博客-CSDN博客_稠密索引和稀疏索引](https://blog.csdn.net/jeaforea/article/details/61420445)*注:稀疏索引不宜太过稀疏或密集,以免增大查找成本...
万字长文带你漫游数据结构世界|社区征文
找到较为适合当前问题场景的数据结构,将数据之间的关系表现在存储上,计算的时候可以较为高效的利用适配的算法,那么程序的运行效率肯定也会有所提高。常用的4种数据结构有:- 集合:只有同属于一个集合的关系,没... 查找的时候,一般都是使用`=`或者`!=`,在折半查找或者其他范围查询的时候,可能会使用`<`和`>`,理想的时候,我们肯定希望不经过任何的比较,直接能定位到某个位置(存储位置),这种在数组中,可以通过索引取得元素。那么,...
如何利用友盟平台定位安卓端的程序异常 | 社区征文
**问题 1. 错误: 程序包 com.umeng.commonsdk 不存在**- - **问题 2. SDK 集成好后,监控平台没有看到相关的统计数据**- - **问题 3. 报错:Installation did not succeed. The application could not be i... 里边有错误的具体明细,比如下图所显示的错误原因是数组越界:ArrayIndexOutOfBoundsException,具体的代码位置在文件 UappActivity.java 的第 93 行。![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1f...
基于 FFmpeg 实现一个数据流风格的视频处理工具 | 社区征文
return urls.ToArray();}```` 其中,入参是直播流 id,这里因为我们使用了 trtc 的旁路直播,所以 streamid 就是房间号。SetStep 方法的左右是记录当前执行的步骤,当程序异常退出后,可以从记录到的位置... 这里主要是使用Downloader进行下载,代码就不再赘述,主要是配置一些下载参数,如分块下载,快捷键,每个下载块的字节数,超时时间等,大家如果对downloader的使用感兴趣,可以到官方仓库查看👉: 这里放一张执行截图。![...

超时问题|找到给定分数数组中玩家的排名 -相关内容

工业大数据分析与应用——知识总结 | 社区征文

生产过程的运行工况故障预测、诊断与自愈控制 1)复杂工业过程监控; 2)模型与大数据驱动的复杂工业过程运行工况的故障预报、诊断与自愈控制; 3)生产过程全流程控制欲管理决策中的故障诊断、预报与安全运行... 用多个CPU联合求解问题的方法和步骤2. 由一些**独立的、可以并行运行**的计算模块(进程)构成,模块之间能相互作用和协调,已完成对一个给定问题的求解> 并行算法设计的目标* 开发问题求解过程中的并行性* 寻求...

PHP SDK

超时时间,单位为毫秒。默认为1000 LogAgent模式 save 是 LogAgent模式下为true,只支持私有化 logger_file_prefix 否 日志存储路径 logger_file_name 否 日志存储文件名 log_max_bytes 是 日志的最大大小,超过该值日志会进行切分 3.接口说明 SDK提供了Collector接口,具体的接口为: php /** * @param $userUniqueId string uuid * @param $appId int appid * @param $custom array 自定义属性 * @param $eventNa...

PHP SDK

超时时间,单位为毫秒。默认为1000 LogAgent模式 save 是 LogAgent模式下为true,只支持私有化 logger_file_prefix 否 日志存储路径 logger_file_name 否 日志存储文件名 log_max_bytes 是 日志的最大大小,超过该值日志会进行切分 3.接口说明 SDK提供了Collector接口,具体的接口为: php /** * @param $userUniqueId string uuid * @param $appId int appid * @param $custom array 自定义属性 * @param $eventNa...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

干货|火山引擎DataTester:5个优化思路,构建高性能A/B实验平台

AND arraySetCheck(ab_version, (29282)) AND event_date >= '2021-05-10' AND event_date <= '2021-05-19' AND multiIf(se... 避免了长链接导致的很多网关超时问题,页面多次刷新时更快返回数据提高用户体验 ![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/8c2de4ccd2534d5da125e732f4eb23d7...

IOS 系统 Crash 日志分析实战| 社区征文

退出时 `watchdog` 超时、用户强制退出和低内存终止等。> - 应用中有`Bug`!从多任务窗口中终止一个暂停的应用程序不会产生崩溃日志。`Apple`官方认为一旦一个应用被暂停,它有资格被`iOS`在任何时间终止,因此不会产生崩溃日志。## 二、Crash 崩溃报告分析实战在`IOS`**设置-隐私-分析与改进-分析数据**中查找当前日期的应用崩溃日志`mrcs-2021-08-31-091354.ips`,日志内容大致如下:```{"app_name":"mrcs","timestamp"...

Flink CEP 在抖音电商的实践

这无疑对一些关键业务问题的发现和洞察起到至关重要的作用。有如下三个具体案例:1. 直播实时检测场景。当检测到直播间在一段时间内观看人数持续下跌时,会实时把消息推送给直播达人,方便其及时做出直播策略的调整。... 整体是一个数组的形式,数组中每个元素表示一个 pattern,第二个 pattern 与前一个 pattern 之间的连接类型是 FOLLOWED\_BY。第一个 pattern 的匹配条件是从流中检测用户下单事件,第二个 pattern 匹配条件是从流入检...

大数据量、高并发业务优化教程|社区征文

一次写入500 - 1000问题不大,字段多了需要降低这个写入量```xmlinsert into im_notice_app_ref(notice_id, app_id, create_time)values (#{item.noticeId}, #{item.appId}, #{item.createTime}) ```一般情况下... 如下是一段订单超时未支付回滚业务数据得代码,采用 `@Transactional` 事务注解```java@Transactional(rollbackFor = Exception.class)public void doUnPaidTask(Long orderId) { // 1. 查询订单是否存在 ...

Flink CEP 在抖音电商的实践

这无疑对一些关键业务问题的发现和洞察起到至关重要的作用。有如下三个具体案例:直播实时检测场景。当检测到直播间在一段时间内观看人数持续下跌时,会实时把消息推送给直播达人,方便其及时做出直播策略的调整。比如... 整体是一个数组的形式,数组中每个元素表示一个 pattern,第二个 pattern 与前一个 pattern 之间的连接类型是 FOLLOWED_BY。第一个 pattern 的匹配条件是从流中检测用户下单事件,第二个 pattern 匹配条件是从流入检测...

查询直播流或域名的回源带宽监控数据

Body参数 类型 是否必选 示例值 描述 DomainList Array of String 否 ["pull.example.com", "pull2.example.com"] 拉流域名列表,默认为空,表示查询所有域名的回源流量数据。您可以调用 ListDomainDetail 接口... 内部服务超时,请联系技术支持。 服务端 SDK视频直播提供了配套的开发工具集 SDK,支持多种编程语言,帮助您更方便的调用 API。 SDK Link for Java SDK Link for Golang SDK Link for Python SDK Link for PHP

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询