LeetCode练习题:
1、给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
class Solution:
def majorityElement(self, nums: List[int]) -> int:
nums.sort()
return nums[int(len(nums)/2)]
解答:本题有点小陷阱,按照平常的方式来解答系统会给你一个有无数个1的数组,这样时间就会很长,消耗过大,有个简单粗暴的方式就是先给数组排序,然后取出中间的那个数,因为题目假设了数组是非空的,并且给定的数组总是存在众数,其实只要那个那个众数存在,那数组一定是单数,那排过序的数组中中间的那个数一定是所要的众数
2、判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
class Solution:
def isPalindrome(self, x: int) -> bool:
n=str(x)
tmp = n[::-1]
if n == tmp:
return True
else:
return False
解答:本题解答的关键在于n[::-1]从右到左显示,看题目的话应该知道系统自动定义了x为int型,我们需要先将x从整形变成字符串类型赋值给一个变量,将再从右到左显示的结果赋值到另外一个变量,最后对两个变量进行比较,如果相同就返回true,否则就返回false