赞
踩
题目描述:
给你一个整数 columnNumber
,返回它在 Excel 表中相对应的列名称。
分析:
由于Excel 表的列名称由大写字母组成,大写字母共有 2626 个,因此列名称的表示实质是 26 进制,需要将 26 进制转换成十进制。
这道题和标准的进制转换不同,Excel 表的列序号是从 1 开始的,因此在进制转换时需要进行处理。
当列名称的长度为 n 时,列名称的每个字母都有 26 种不同的取值,因此长度为 n 的不同列名称有 26^n 个。
代码:
- class Solution:
- def convertToTitle(self, columnNumber):
- ans = list()
- while columnNumber > 0:
- a0 = (columnNumber - 1) % 26 + 1
- ans.append(chr(a0 - 1 + ord("A")))
- columnNumber = (columnNumber - a0) // 26
- return "".join(ans[::-1])
-
题目描述:
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
分析:
用哈希表来快速统计每个元素出现的次数
使用哈希映射(HashMap)来存储每个元素以及出现的次数。对于哈希映射中的每个键值对,键表示一个元素,值表示该元素出现的次数。
我们用一个循环遍历数组 nums 并将数组中的每个元素加入哈希映射中。在这之后,我们遍历哈希映射中的所有键值对,返回值最大的键。我们同样也可以在遍历数组 nums 时候使用打擂台的方法,维护最大的值,这样省去了最后对哈希映射的遍历。
collections的用法:(99条消息) Python collections.Counter()用法_pvop的博客-CSDN博客_python中collections.counter()
代码:
- class Solution:
- def majorityElement(self, nums: List[int]) -> int:
- counts = collections.Counter(nums)
- return max(counts.keys(), key=counts.get)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。