返回
LeetCode第240场周赛题解
闲谈
2023-10-31 14:03:25
5750. 人口最多的年份
题目
给定一个年份列表 ages,每个年份代表着该年份的人口数量。请找出人口最多的年份。
示例:
输入:ages = [1990, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021]
输出:2000
思路:
我们可以使用一个哈希表来存储年份和对应的人口数量。然后,我们可以遍历哈希表,找出人口最多的年份。
代码实现:
def maximum_population_year(ages):
"""
:type ages: List[int]
:rtype: int
"""
# 使用哈希表存储年份和对应的人口数量
population = {}
for age in ages:
if age not in population:
population[age] = 0
population[age] += 1
# 找出人口最多的年份
max_population = 0
max_year = 0
for year, population in population.items():
if population > max_population:
max_population = population
max_year = year
return max_year
# 测试代码
ages = [1990, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021]
result = maximum_population_year(ages)
print(result)
5751. 一对值的 最大距离
题目:
给你一个整数数组 nums,其中每个元素都互不相同。请你返回 nums 中任意一对不同的元素之间的 最大距离 。
示例:
输入:nums = [1,2,3]
输出:2
思路:
我们可以使用一个哈希表来存储每个元素的位置。然后,我们可以遍历哈希表,找出最大距离。
代码实现:
def max_distance(nums):
"""
:type nums: List[int]
:rtype: int
"""
# 使用哈希表存储每个元素的位置
positions = {}
for i, num in enumerate(nums):
positions[num] = i
# 找出最大距离
max_distance = 0
for i, num in enumerate(nums):
for j in range(i + 1, len(nums)):
max_distance = max(max_distance, abs(positions[num] - positions[nums[j]]))
return max_distance
# 测试代码
nums = [1, 2, 3]
result = max_distance(nums)
print(result)