百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

LeetCode刷题日记:【Top 100】Easy 1-3 python解析

off999 2024-10-09 14:04 93 浏览 0 评论


写在前面

上一篇刷题日记LeetCode Top100 刷题日记:1~3是直接从Top 100 Liked Questions按题号顺序刷起的,结果刷到中间连续碰到好几个Medium和Hard题,有点劝退的感觉,于是决定从重新Top100的Easy题型刷起,今后的分享顺序也是按Easy-Medium-Hard这个顺序来,题号也采用原始的题号,方便对应查找。这三个类别的题量分别是25、57和18,Easy已经刷完了,大概花了一周,后面的题型用时估计会越来越久。这段时间会先对Easy题型做个总结,每篇更新3道题,每道题给出个人认为最容易理解、最高效的算法,并算出其时间和空间复杂度,以此方式陆续更新【LeetCode刷题日记】系列。

1. Two Sum (Easy)

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

分析:这道题上一篇LeetCode Top100 刷题日记:1~3分享里介绍过,这里为了100题内容的完整性,还是贴出来了。这里直接用hash表解决。

  • Time complexity : O(n)
  • Space complexity : O(n)
class Solution(object):
    def twoSum(self, nums, target):
        hash = {}
        for i, num in enumerate(nums):
            if target-num in hash:
                return [hash[target-num], i]
            hash[num] = i

7. Reverse Integer (Easy)

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

分析:这道题其实用python的list特性做十分简单,直接转化成str作为list反转就好了,但是大家要明白这并非出题者的意图,面试的时候我们给出这个解法也肯定是不被接受的。换一个思路,这道题分解出来其实是判断对称的左右数字是否相等,那么如何提取左右的对称数字就成了关键。这类用取商和余的思路解决了这个问题。

  • Time complexity : O(n)
  • Space complexity : O(1)
class Solution:
    def reverse(self, x):
        result = 0

        if x < 0:
            sign = -1
            x = -x
        else:
            sign = 1

        while x:
            result = result * 10 + x % 10
            x /= 10

        return 0 if result > pow(2, 31) else result * symbol

9. Palindrome Number (Easy)

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

Example 1:

Input: 121
Output: true

Example 2:

Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

分析:这道题和上一道题简直是异曲同工,如果理解了上一道题,这道题也能迎刃而解了,如果提取了左右对称的元素,那么就可以直接通过比较其是否相等来判断整个数是否是回文数。这两道题放在一篇日记里说也算是一个巧合,题刷多了其实大家就会发现,都是套路啊。

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        degree = 1
        while x // degree >= 10:  # 需要注意条件
            degree *= 10
        
        while x:
            left = x//degree
            right = x%10
            if left!=right:
                return False
            
            x = (x%degree)//10
            degree //= 100
            
        return True

写在后面

目前刷下来感觉这个刷题顺序还是不错的,感觉越来越得心应手,建议大家也可以同步进行,一天两道题,不到30分钟基本就能搞定。虽然Easy题型只是基础,有些题短时间还是很难解决,要循序渐进,不能着急。加油!

相关推荐

win10打开设置快捷键(win10打开设置快捷键是什么)

1、首先打开电脑,在任务栏的语言地方点击一下再点击语言首选项。2、然后在新的界面里点击选择左侧“高级设置”按钮。3、之后在新的界面里点击选择“更改语言栏热键”按钮。4、然后在新的界面里点击选择“更改热...

flash插件下载手机版下载安装

华为手机的最新系统版本已经不再支持FlashPlayer,这是由于Adobe已于2020年底停止更新和支持FlashPlayer。因此,如果您使用最新的华为手机系统,可能无法安装和使用Flash...

官方应用商店下载(小米官方应用商店下载)

1.审核和验证:应用商店会对应用进行审核和验证,确保其质量和可靠性。开发者需要满足一定的要求才能在应用商店上架应用。而官网下载的应用没有经过此类审核和验证,因此用户需要自行评估其质量和可信度。2....

主题软件免费(主题软件免费推荐)

下载主题方法:一、打开手机找到APPStore应用软件,二、点击进去在下面找到有个搜索,点击它查找主题壁纸,三、弹出来很多主题壁纸,根据下载量和个人喜欢的应用主题选择下载相应的主题,四、下载成功后即...

一芯fc1178bc盘量产教程(一芯量产工具使用教程)

fc1178bc量产工具没有显示u盘拔下U盘,关闭量产工具,再插上U盘(先要确认卸载了安国的驱动,如果不能确认,运行LoadDriver.exe卸载),然后插上U盘,右键我的电脑---属性---硬件-...

电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
u盘内文件损坏怎么办(u盘内文件损坏怎么办解决)

以下是8种修复U盘文件损坏的方法:1.风险自担型:试图直接复制文件如果U盘的部分文件损坏,您可能可以使用此方法。请复制文件您能打开的所有文件,并尝试将它们粘贴到桌面或其他文件夹中。但是请...

internet explorer怎么更新(22号天蝎座的运势)

1、打开IE浏览器。2、点击位于浏览器窗口的右上角的功能按钮。3、点击关于InternetExplorer。它位于下拉菜单的底部。4、勾选“自动安装新版本”复选框。它位于“关于Internet...

snapseed(snapseed手机修图软件免费版)

Snapseed是一款非常流行的手机修图工具,下面是Snapseed工具最全教程:1.打开照片:打开Snapseed,点击左上角的“打开”按钮,选择需要修图的照片。2.自动增强:点击屏幕左下角的“...

canon佳能打印机驱动下载(下载佳能打印机驱动程序)

打开开始菜单,选择运行。输入gpedit.msc,并确定。选择左边“windows设置”,右边鼠标左键双击“安全设置”。选择策略在选择安全选项再鼠标左键双击“设备:防止用户安装打印机驱动程序”。选择已...

爱思助手安卓版下载(爱思助手安卓版下载v1.21.03)

容易造成系统的崩溃在爱思助手中安装的软件都打不开或者发生闪退,很容易造成系统的崩溃需要重新刷机,所以一般不太推荐使用爱思助手。爱思助手上下载正版软件不需要AppleID,这是为了方便不会注册的用户,但...

微软拼音输入法app(微软拼音输入法App下载)
微软拼音输入法app(微软拼音输入法App下载)

1、选择微软拼音输入法的图标,点击鼠标右键,出现菜单后选择设置选项。2、在高级里把美式键盘改为微软拼音输入法,然后点击右下角的属性按钮。3、点击逐键提示选项后,选择确定按钮,在后面出现对话框中点击应用即可。微软拼音输入法是一种基于语句的智能...

2025-12-31 04:51 off999

win10怎么更新蓝牙驱动(win10 更新蓝牙驱动)

1.电脑桌面,右键【此电脑】,点击【属性】。2.然后点击【设备管理器】。3.然后展开【蓝牙】。4.然后鼠标右键【Bluetooth】,点击【更新驱动程序(P)】。5.选择一种方式更新驱动,更新完驱动就...

360免费升级正版win10(360 win10免费升级)

  XP无法直接升级到Windows10.  能否升级还需要看硬件配置是否达标。如果达标可以通过以下方法来安装。  1、去系统网站下载win10镜像文件。  2、使用软碟通软件把镜像文件里面的gho....

w7正版系统多少钱一年(正版win7旗舰版系统多少钱)

所有的正版windows系统都是需要付费购买的,包括笔记本电脑中预装好的正版系统,相应的费用也算入购机款中。你问的外行了。1、OEM系统是正版的,但是只能用于本品牌机上,也就是联想的WIN7系统(即O...

取消回复欢迎 发表评论: