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

青训10_1121_01_游戏排名第三大的分数

青训10_1121_01_游戏排名第三大的分数.md

文章目录

  • 青训10_1121_01_游戏排名第三大的分数.md
      • 问题描述
      • 测试样例
      • 示例
    • 思路:
    • 答案
    • 注意点
      • 1、关于[] 在python和java的区别
        • 解释
      • 2、那java中list变成jason是[],而不是{}吗
        • 解释:

问题描述

小M想要通过查看往届游戏比赛的排名来确定自己比赛的目标分数。他希望找到往届比赛中排名第三的分数,作为自己的目标。具体规则如下:

如果分数中有三个或以上不同的分数,返回其中第三大的分数。
如果不同的分数只有两个或更少,那么小M将选择最大的分数作为他的目标。
请你帮小M根据给定的分数数组计算目标分数。

测试样例

样例1:

输入:n = 3,nums = [3, 2, 1]
输出:1

样例2:

输入:n = 2,nums = [1, 2]
输出:2

样例3:

输入:n = 4,nums = [2, 2, 3, 1]
输出:1

示例

def solution(n: int, nums: list) -> int:
    # write code here
    return 0

if __name__ == '__main__':
    print(solution(3, [3, 2, 1]) == 1)
    print(solution(2, [1, 2]) == 2)
    print(solution(4, [2, 2, 3, 1]) == 1)

思路:

本人:

1 数组只要判断数量<=2一个逻辑,获取最大值进行更新返回即可
2  >=3一个逻辑,进行排序,返回第三个数即可。

答案

def solution(n: int, nums: list) -> int:
    # 去重并降序排序
    unique_nums = sorted(set(nums), reverse=True)
    
    # 如果不同的分数少于3个,返回最大值
    if len(unique_nums) < 3:
        return unique_nums[0]
    
    # 返回第三大的分数
    return unique_nums[2]

if __name__ == '__main__':
    print(solution(3, [3, 2, 1]) == 1)
    print(solution(2, [1, 2]) == 2)
    print(solution(4, [2, 2, 3, 1]) == 1)

注意点

1、关于[] 在python和java的区别

疑问来源:我有个疑问,[]这种括号是表示list还是set。因为java中是表示数组,list是{},还是python不一样呢。[3, 2, 1]

解释

在 Python 中,[3, 2, 1] 这种方括号语法表示的是列表(List),不是集合(Set)。让我详细解释 Python 中的数据结构:

  1. 列表 List: 使用方括号 []
my_list = [3, 2, 1]  # 列表,可以包含重复元素,有序

2、集合 Set: 使用花括号 {}set()

my_set = {3, 2, 1}  # 集合,不包含重复元素,无序
# 或者
my_set = set([3, 2, 1])  # 使用set()函数创建集合

主要区别:

  • List 允许重复元素,保持元素顺序
  • Set 不允许重复元素,不保证顺序

在我之前的解决方案中,set(nums) 是将输入的列表转换为集合,以去除重复元素。

示例对比:

# List
nums_list = [3, 2, 1, 2]  # 允许重复
print(nums_list)  # 输出: [3, 2, 1, 2]
print(len(nums_list))  # 输出: 4

# Set
nums_set = set([3, 2, 1, 2])  # 去除重复
print(nums_set)  # 输出: {1, 2, 3}
print(len(nums_set))  # 输出: 3

这与 Java 有些不同。Java 中:

  • [] 通常表示数组
  • List 是接口,实现通常是 ArrayList<>()
  • Set 的实现如 HashSet<>()

Python 在这方面更简洁灵活。希望这个解释能帮助您理解 Python 中的列表和集合!

2、那java中list变成jason是[],而不是{}吗

解释:

在 Java 中,List 转换为 JSON 时,实际上是使用 [](方括号),而不是 {}(花括号)。

JSON 中的表示:

  1. List/数组 → [1, 2, 3]
  2. 对象/Map → {"key": "value"}

Java 中的转换示例:

// 使用 Jackson 库
ObjectMapper mapper = new ObjectMapper();
List<String> list = Arrays.asList("apple", "banana", "cherry");
String jsonString = mapper.writeValueAsString(list);
// jsonString 会是 ["apple", "banana", "cherry"]

// 使用 Gson 库
Gson gson = new Gson();
String jsonString = gson.toJson(list);
// jsonString 也会是 ["apple", "banana", "cherry"]

所以,List 在 JSON 中始终是 [],不是 {}。花括号 {} 通常用于表示对象或映射。


http://www.kler.cn/a/409311.html

相关文章:

  • Mysql的加锁情况详解
  • Outlook for Mac同步错误:The total attachment size exceeds the limit.
  • 用CAXA CAD电子图板导入图框、标题栏并导出pdf的方法
  • Django实现智能问答助手-数据库方式读取问题和答案
  • 【C++笔记】数据结构进阶之二叉搜索树(BSTree)
  • Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成
  • C 标准库 - <signal.h>
  • Roslyn和csc的关系?C#编程语言的命令行用法?C#编译器支持的版本?
  • HarmonyOS Next 简单上手元服务开发
  • 无插件直播流媒体音视频播放器EasyPlayer.js播放器的g711系列的音频,听起来为什么都是杂音
  • 国内外优秀的视频提取音频在线工具分享
  • Vue 动态给 data 添加新属性深度解析:问题、原理与解决方案
  • 应急响应靶机——linux1
  • 5、AI测试辅助-生成测试用例思维导图
  • C语言练习.if.else语句.strstr
  • 存储过程 与 表值函数
  • 【jvm】解释器
  • 丹摩|丹摩智算平台深度评测
  • C语言菜鸟入门·关键字·int的用法
  • 算法训练(leetcode)二刷第三十天 | *46. 携带研究材料(第六期模拟笔试)、416. 分割等和子集
  • C# 数据结构之【图】C#图
  • D74【 python 接口自动化学习】- python 基础之HTTP
  • 【Android】View的解析—滑动篇
  • 手机发展史介绍
  • 2024年11月最新 Alfred 5 Powerpack (MACOS)下载
  • 在ubuntu中查看csv