LeetCode日常小习题

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

既然选择了远方,只能风雨兼程
原文地址:https://www.cnblogs.com/lzss/p/11253070.html