坚持写算法题的第四周(三)

简介: 坚持写算法题的第四周(三)

2021-11-3

题目

1.Sqrt(x)

image.png


2.爬楼梯

image.png


3.无重复字符的最长字串

image.png


题解

1.Sqrt(x)

本题思路是当一个数的算数平方根不是整数时,这个数肯定时大于该算数平方根的整数部分的幂乘积,小于整数部分加一的幂乘积,所以我们就遍历来找到这个整数,就是我们想要的数,然后返回!!


2.爬楼梯

这个题我最开始用的时回溯加剪枝,但是到最后我发现这个在数值等于38的时候超时,所以肯定不能用回溯了,还有一个方法就是用斐波那契数列。


3.无重复字符的最长字串

这个题是我之前没有写出来的一个滑块题,因为它的滑块长度是会变化的,最开始我有点把握不住这个长度,看了一些大佬的题解才写出来的。


由于我的表达太差,我还是直接给大家上官方的题解思路吧。

image.png



代码

1.Sqrt(x)

class Solution:
    def mySqrt(self, x: int) -> int:
        if x == 1:
            return 1
        if x == 0:
            return 0
        for i in range(x):
            if x >=i*i  and (i+1)*(i+1) > x:
                return i

2.爬楼梯

1.


class Solution:
    def climbStairs(self, n: int) -> int:
        def trace(tag,res):
            if tag < 0:
                return 
            if tag == 0:
                res.append( 1)
                return
            for i in range(1,3):
                trace(tag-i,res)
            return len(res)
        return trace(n,[])

2.


class Solution:
    def climbStairs(self, n: int) -> int:
        dp = {}
        dp[1] = 1
        dp[2] = 2
        for i in range(3,n+1):
            dp[i] = dp[i-1] + dp[i-2]
        return dp[n]

3.无重复字符的最长字串

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if not s : return 0
        looku = set()
        left = 0
        max_len = 0
        cur_len = 0
        for i in range(len(s)):
            cur_len += 1
            while s[i] in looku:
                looku.remove(s[left])
                left += 1
                cur_len -=1
            looku.add(s[i])
            if max_len < cur_len:
                max_len = cur_len
        return max_len



目录
相关文章
|
10月前
|
测试技术 开发者 UED
探索软件测试的深度:从单元测试到自动化测试
【10月更文挑战第30天】在软件开发的世界中,测试是确保产品质量和用户满意度的关键步骤。本文将深入探讨软件测试的不同层次,从基本的单元测试到复杂的自动化测试,揭示它们如何共同构建一个坚实的质量保证体系。我们将通过实际代码示例,展示如何在开发过程中实施有效的测试策略,以确保软件的稳定性和可靠性。无论你是新手还是经验丰富的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
11月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
1078 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
SQL 关系型数据库 数据库
Flink CDC数据同步问题之数据同步很慢如何解决
Flink CDC数据同步是指利用Flink CDC实现不同数据源之间的实时数据同步任务;本合集旨在提供Flink CDC数据同步的操作指南、性能优化建议和常见问题处理,助力用户高效实施数据同步。
|
11月前
|
前端开发 Java API
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
本文提供了一份详细的Swagger接口文档生成工具的使用教程,包括了导入依赖、配置类设置、资源映射、拦截器配置、Swagger注解使用、生成接口文档、在线调试页面访问以及如何设置全局参数(如token),旨在帮助Java开发者快速上手Swagger。
6625 0
Swagger接口文档 —— 手把手教学,全方位超详细小白能看懂,百分百能用Java版
|
缓存 分布式计算 DataWorks
DataWorks产品使用合集之阿里云DataWorks中,天任务依赖小时任务的调度运行如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
274 1
|
12月前
|
存储 消息中间件 NoSQL
两万字长文让你彻底掌握 celery
两万字长文让你彻底掌握 celery
4138 0
|
人工智能 云计算
阿里云携手合作伙伴得云AI举办《AI赋能 · 智能革新沙龙》
阿里云与得云AI联合举办了《AI赋能·智能革新沙龙》,探讨云计算和AI前沿技术。
|
负载均衡 Cloud Native Nacos
nacos集群
Nacos是一个开源的动态服务发现、配置管理和服务管理平台,用于帮助开发者构建云原生应用。Nacos支持集群部署,可以提供高可用性和扩展性。下面将介绍Nacos集群的搭建和配置。
511 0
|
人工智能 Perl 内存技术
Adobe2023的最新版全家桶下载
Adobe系列软件作为目前市面上最主流的后期编辑软件,它的每次更新都会引起很大的关注度,当然它的更新也几乎没有让我们失望过,总会给我们带来不一样的惊喜。
983 0
|
消息中间件 JavaScript 小程序
OkHttp完美封装,一行搞完外部请求
OkHttp完美封装,一行搞完外部请求