力扣61~65题

news2024/11/30 12:35:07

题61(中等):

分析:

python代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        #利用空间复杂度解决,将链表装进列表
        node_list=[]
        p=head
        while p!=None:
            node_list.append(p)
            p=p.next
        node_len=len(node_list)
        if node_len==0:
            return head
        k_new=k%node_len
        if k_new==0:
            return head
        node_list[-1].next=node_list[0]
        head=node_list[-k_new]
        node_list[-(k_new+1)].next=None
        return head


        

题62(中等):

分析:

python代码:

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        #思路就是动态数组嘛
        auto_list=[[1 for j in range(n)] for i in range(m)]
        for i in range(1,m):
            for j in range(1,n):
                a1,a2=0,0
                if i-1>=0:
                    a1=auto_list[i-1][j]
                if j-1>=0:
                    a2=auto_list[i][j-1]
                auto_list[i][j]=a1+a2
        return auto_list[-1][-1]

题63(中等):

分析

会这个差不多可以制作迷宫小游戏了

python代码:

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        #动态数组,和上一题差不多
        #构造动态数组,obstacleGrid中有障碍为设置为0,没有设置为1
        auto_list=[[0 for i in range(len(obstacleGrid[0]))] for j in range(len(obstacleGrid))]
        for i in range(len(obstacleGrid)):
            for j in range(len(obstacleGrid[0])):
                if obstacleGrid[i][j]==0:
                    auto_list[i][j]=1
                else:
                    auto_list[i][j]=0
        #设置动态数组的值
        for i in range(len(obstacleGrid)):
            for j in range(len(obstacleGrid[0])):
                #第一个位置必须是0
                if i==0 and j==0:
                    continue
                if auto_list[i][j]==0:
                    continue
                a1,a2=0,0
                if i-1>=0:
                    a1=auto_list[i-1][j]
                if j-1>=0:
                    a2=auto_list[i][j-1]
                auto_list[i][j]=a1+a2
        return auto_list[-1][-1]

题64(中等):

分析:

python代码:

class Solution:
    def minPathSum(self, grid: List[List[int]]) -> int:
        #动态规划,本质上和前面的题目是一样的
        auto_list=grid.copy()
        for i in range(len(auto_list)):
            for j in range(len(auto_list[0])):
                if i==0 and j==0:
                    #第一个就跳过就好了
                    continue
                if i-1<0:
                    auto_list[i][j]+=auto_list[i][j-1]
                    continue
                if j-1<0:
                    auto_list[i][j]+=auto_list[i-1][j]
                    continue
                auto_list[i][j]+=min(auto_list[i-1][j],auto_list[i][j-1])


        return auto_list[-1][-1]

题65(困难):

分析:

不得不说,这个有效数字判定规则很诡异,不过难度真不配困难

python代码:

class Solution:
    def isNumber(self, s: str) -> bool:
        s_stack=[]
        dot_flag=0
        sign_flag=0
        e_flag=0
        for i in s:
            #如果为数字
            if i in ('0','1','2','3','4','5','6','7','8','9'):
                if dot_flag==1:
                    dot_flag=0
                if e_flag==1:
                    e_flag=0
                if sign_flag==1:
                    sign_flag=0
                s_stack.append(i)

            #如果为.
            elif i=='.':
                if s_stack==[] or s_stack==['+'] or s_stack==['-']:
                    dot_flag=1

                if '.' in s_stack:
                    return False
                if ('e' in s_stack) or ('E' in s_stack):
                    return False
                
                s_stack.append('.')

            #如果为+-
            elif i=='+' or i=='-':
                #如果不是空或者前面不是e就0
                if s_stack==[]:
                    sign_flag=1
                    s_stack.append(i)
                elif s_stack[-1]=='e' or s_stack[-1]=='E':
                    s_stack.append(i)
                else:
                    return False


            #如果为e或者E
            elif i=='e' or i=='E':
                print(s_stack)
                e_flag=1
                if 'e' in s_stack or 'E' in s_stack:
                    return False
                if s_stack==[] or s_stack==['+'] or s_stack==['-']:
                    return False
                if s_stack==['.'] or s_stack==['+','.'] or s_stack==['-','.']:
                    return False
                s_stack.append(i)
            else:
                return False
        if dot_flag==1:
            return False
        if e_flag==1:
            return  False
        if sign_flag==1:
            return False

        return True

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2218270.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【含开题报告+文档+PPT+源码】基于SpringBoot电脑DIY装机教程网站的设计与实现

开题报告 随着科技的发展和人们对电脑需求的增加&#xff0c;越来越多的人开始自己组装电脑。然而&#xff0c;针对初学者来说&#xff0c;如何选择合适的硬件配置并进行装机是一个相对复杂的过程。随着各种品牌、型号和规格的硬件不断增多&#xff0c;用户需要一个方便快捷的…

Java项目编译不通过,IDEA无法运行或调试Unit test类

mvn test可以通过&#xff0c;但是通过IDEA无法运行或调试&#xff0c;总是弹出一些依赖错误比如&#xff1a; 程序包xxx.xxx.xxx 不存在或找不到符号 解决办法 步骤1&#xff1a;IDEA 打开 File -> Setting ->Compiler &#xff0c;找到“Automatically show first …

20 Shell Script输入与输出

标出输入、标准输出、错误输出 一、程序的基本三个IO流 一&#xff09;文件描述符 ​ 任何程序在Linux系统中都有3个基本的文件描述符 ​ 比如: ​ cd/proc/$$/fd ​ 进入当前shell程序对于内核在文件系统的映射目录中: [rootlocalhost ~]# cd /proc/$$/fd [rootlocalhos…

基于System.js的微前端实现(插件化)

目录​​​​​​​ 写在前面 一、微前端相关知识 &#xff08;一&#xff09;概念 &#xff08;二&#xff09; 优势 &#xff08;三&#xff09; 缺点 &#xff08;四&#xff09;应用场景 &#xff08;五&#xff09;现有框架 1. qiankun 2. single-spa 3. SystemJ…

【MR开发】在Pico设备上接入MRTK3(一)——在Unity工程中导入MRTK3依赖

写在前面的话 在Pico上接入MRTK3&#xff0c;目前已有大佬开源。 https://github.com/Phantomxm2021/PicoMRTK3 也有值得推荐的文章。 MRTK3在PICO4上的使用小结 但由于在MacOS上使用MRTK3&#xff0c;无法通过Mixed Reality Feature Tool工具管理MRTK3安装包。 故记录一下…

Dockerr安装Oracle以及使用DBeaver连接

拉取镜像 pull container-registry.oracle.com/database/free:latest 创建容器 说明一下我现在的最新版本是23 docker run -d --name oracle23i -h xrilang -p 1521:1521 container-registry.oracle.com/database/free:latest 查看日志 docker logs oracle23i 设置密码 因为创建…

登录时用户名密码加密传输(包含前后端代码)

页面输入用户名密码登录过程中&#xff0c;如果没有对用户名密码进行加密处理&#xff0c;可能会导致传输过程中数据被窃取&#xff0c;就算使用https协议&#xff0c;在浏览器控制台的Request Payload中也是能直接看到传输的明文&#xff0c;安全感是否还是不足。 大致流程&a…

第二百八十八节 JPA教程 - JPA查询连接OrderBy示例

JPA教程 - JPA查询连接OrderBy示例 以下代码显示如何使用ORDER BY子句和连接条件。 List l em.createQuery("SELECT e " "FROM Project p JOIN p.employees e " "WHERE p.name :project " "ORDER BY e.name").setParameter("pr…

【MogDB】MogDB5.2.0重磅发布第四篇-支持windows版gsql,兼容sqlplus/sqlldr语法

一、背景 目前仍然很多客户的运维机使用windows操作系统&#xff0c;开发人员也是在windows环境上进行编码测试&#xff0c;甚至还有一些客户管理比较严格&#xff0c;禁止开发人员登录服务器进行操作。在MogDB 5.2.0版本之前&#xff0c;没有提供windows平台的gsql&#xff0…

在龙芯笔记本电脑上安装loongnix20

在龙芯笔记本电脑上安装loongnix20。该笔记本电脑原来安装了统信操作系统20。使用时发现屏幕调到最暗还是偏亮。使用起来不方便。于是安装另外一款操作系统loongnix20。 于是下载loongnix20。下载速度很快。下载以后安装也比较顺利。装好试了一下&#xff0c;屏幕亮度可以调到…

二叉树中的最长交错路径

题目链接 二叉树中的最长交错路径 题目描述 注意点 每棵树最多有 50000 个节点每个节点的值在 [1, 100] 之间起点无需是根节点 解答思路 要找到最长交错路径&#xff0c;首先想到的是深度优先遍历因为起点无需是根节点&#xff0c;所以对于任意一个节点&#xff0c;其可以…

分类任务中评估模型性能的核心指标

在机器学习尤其是分类任务中&#xff0c;Accuracy&#xff08;准确率&#xff09;、Precision&#xff08;精确率&#xff09;、Recall&#xff08;召回率&#xff09;和F1 Score&#xff08;F1分数&#xff09;是评估模型性能的四个核心指标。每个指标都有其独特的含义和用途&…

JVM进阶调优系列(4)年轻代和老年代采用什么GC算法回收?

大厂面试真题:GC 算法有多少种&#xff1f;各自优缺点是什么&#xff1f;年轻代和年老代选择哪种算法最优&#xff1f; 首先回顾一个图&#xff0c;也就是.class文件的类加载过程&#xff0c;以及线程执行、java内存模型图。看过系列1、2、3三篇文章的同学&#xff0c;大脑先回…

[产品管理-46]:产品组合管理中的项目平衡与管道平衡的区别

目录 一、项目平衡 1.1 概述 1.2 项目的类型 1、根据创新程度和开发方式分类 2、根据产品开发和市场周期分类 3、根据风险程度分类 4、根据市场特征分类 5、根据产品生命周期分类 1.3 产品类型的其他分类 1、按物理形态分类 2、按功能或用途分类 3、按技术或创新程…

大数据研究实训室建设方案

一、概述 本方案旨在提出一套全面的大数据研究实训室建设策略&#xff0c;旨在为学生打造一个集理论学习与实践操作于一体的高端教育环境。实训室将专注于培养学生在大数据处理、分析及应用领域的专业技能&#xff0c;通过先进的设施配置、科学的课程体系和实用的实训模式&…

C++之list(2)

list(2) list的迭代器 const迭代器 根据我们之前学过的知识&#xff1a; const int*p1;//修饰的是指向的内容 int *const p2;//修饰的是迭代器本身我们写const迭代器&#xff0c;期望的是指向的内容不能修改。 所以更期望写上面p1的形式 const迭代器与普通迭代器的不同点在于…

03 设计模式-创造型模式-单例模式

单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建…

C语言复习第4章 数组

目录 一、一维数组的创建和初始化1.1数组的创建1.2 变长数组1.3 数组的初始化1.4 全局数组默认初始化为01.5 区分两种字符数组1.6 用sizeof计算数组元素个数1.7 如何访问数组元素1.8 一维数组在内存中的存储(连续存储)1.9 访问数组元素的另一种方式:指针变量1.10 数组越界是运行…

【AI绘画】Midjourney进阶:引导线构图详解

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 &#x1f4af;前言&#x1f4af;什么是构图为什么Midjourney要使用构图 &#x1f4af;引导线构图特点使用场景提示词书写技巧测试 &#x1f4af;小结 &#x1f4af;前言 【AI绘画】Midjourney进阶&a…

AnaTraf | TCP重传的工作原理与优化方法

目录 什么是TCP重传&#xff1f; TCP重传的常见触发原因 TCP重传对网络性能的影响 1. 高延迟与重传 2. 吞吐量的下降 如何优化和减少TCP重传 1. 优化网络设备配置 2. 优化网络链路 3. 网络带宽的合理规划 4. 部署CDN和缓存策略 结语 AnaTraf 网络性能监控系统NPM | …