青训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 中的数据结构:
- 列表 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 中的表示:
- List/数组 →
[1, 2, 3]
- 对象/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 中始终是 []
,不是 {}
。花括号 {}
通常用于表示对象或映射。