每日一题 670. 最大交换(中等,后缀)

在这里插入图片描述

  1. 先考虑最简单的情况,如果在首位之后有比它大的数字,那么显然交换这两个数字是最优解
  2. 其次如果比它大的数字在后面不止出现了一次,那面显然是用最后一次出现的那个位置进行交换(要使值最大,低位要小,高位要大)
  3. 继而考虑如果首位之后没有比它大的数字,那么我们就要考虑第二位该怎么交换,第二位的交换规则和第一步,第二步一样,以此类推,直到最后一位
  4. 上面的方法目前最坏情况下是O(n2)的,下面优化 “寻找下标 i ,之后最后一个比它大的值的下标” 问题
  5. 通过从后往前遍历一次数组,我们就可以得到我们需要的下标 i 之后的最大值,同时也可以记录下标
  6. 通过上面的优化,问题可以在O(n)时间内解决
class Solution:
    def maximumSwap(self, num: int) -> int:
        s = list(map(int, str(num)))
        nextmax = [[0] * 2 for _ in range(len(s))]
        nextmax[-1][0] = s[-1]
        nextmax[-1][1] = -1
        for i in range(len(s) - 2, -1, -1):
            if s[i] > nextmax[i + 1][0]:
                nextmax[i] = [s[i], i]
            else:
                nextmax[i] = nextmax[i + 1]
        index = 0
        while index < len(s) - 1 and nextmax[index + 1][0] <= s[index]:
            index += 1
        s[index], s[nextmax[index][1]] = s[nextmax[index][1]], s[index]
        return int(''.join(list(map(str, s))))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MAXWELL

MAXWELL 一、maxwell是什么 maxwell 官网地址&#xff1a;http://maxwells-daemon.io/ 因为官网是纯英文的&#xff0c;倒是不难懂&#xff0c;但总觉得写的略粗糙&#xff08;也可能笔者英文水平确实拉胯&#xff0c;有待提高&#xff09;。所以还是自己百度了一下。 当my…

WhatsApp会话信息该如何备份以及还原

对于出海企业来说&#xff0c;WhatsApp是和客户沟通的必备软件之一。无论是聊单还是询盘都可以在WhatsApp上进行&#xff0c;所以WhatsApp上通常存储了很多交易信息。但是WhatsApp软件本身是端对端加密&#xff0c;所以它不会像其他社交软件一样帮你自动在后台备份&#xff0c;…

制造业管理软件:为何ERP替代不了MES?

一、ERP和MES的功能区别 ERP是一种综合性的企业管理软件&#xff0c;它涵盖了企业的各个方面&#xff0c;包括财务、采购、库存、销售、人力资源等。它的主要功能是将企业内部的各项业务整合为一个整体进行管理&#xff0c;实现信息共享和协同工作。ERP的主要特点是可以对企业…

HackTheBox - Medium - Linux - Noter

Noter Noter 是一种中型 Linux 机器&#xff0c;其特点是利用了 Python Flask 应用程序&#xff0c;该应用程序使用易受远程代码执行影响的“节点”模块。由于“MySQL”守护进程以用户“root”身份运行&#xff0c;因此可以通过利用“MySQL”的用户定义函数来利用它来获得RCE并…

c语言小游戏之扫雷

目录 一&#xff1a;游戏设计理念及思路 二&#xff1a;初步规划的游戏界面 三&#xff1a;开始扫雷游戏的实现 注&#xff1a;1.创建三个文件&#xff0c;test.c用来测试整个游戏的运行&#xff0c;game.c用来实现扫雷游戏的主体&#xff0c;game.h用来函数声明和包含头文…

【立创EDA-PCB设计基础】5.布线设计规则设置

前言&#xff1a;本文详解布线前的设计规则设置。经过本专栏中的【立创EDA-PCB设计基础】前几节已经完成了布局&#xff0c;接下来开始进行布线&#xff0c;在布线之前&#xff0c;要设置设计规则。 目录 1.间距设置 1.1 安全间距设置 1.2 其它间距设置 2.物理设置 2.1 导…

枚举类型有着一篇足以

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 1.关键字enum的定义 enum是C语言中的一个关键字&#xff0c;enum叫枚举数据类型&#…

JavaScript基础之JavaScript引入方式

JavaScript引入方式 JavaScript 程序不能独立运行&#xff0c;它需要被嵌入 HTML 中&#xff0c;然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;一般以下方式: 外部方式内部方式JavaScript元素事件通过JavaScript伪URL引…

Spring Boot 4.0:构建云原生Java应用的前沿工具

目录 前言 Spring Boot简介 Spring Boot 的新特性 1. 支持JDK 17 2. 集成云原生组件 3. 响应式编程支持 4. 更强大的安全性 5. 更简化的配置 Spring Boot 的应用场景 1. 云原生应用开发 2. 响应式应用程序 3. 安全性要求高的应用 4. JDK 17的应用 总结 作…

【射影几何11】完全四边形和交比研究

一、说明 对于交比的灵活应用&#xff0c;尚有许多情况需要讨论&#xff0c;首先引出完全四边形的例子&#xff0c;该关键词的应用非常普遍&#xff1b;其次&#xff0c;我们尝试用交比证明一些事实&#xff1b;随后我们又引出交比射影案例的特殊情况。 二、完全四边形 2.1 完…

Excel 动态可视化图表分享

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 数据库Mysql 8.0 54集 数据库Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Exc…

SqlAlchemy使用教程(五) ORM API 编程入门

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用SqlAlchemy使用教程(五) ORM API 编程入门 前一章用SQL表达式(SQL Expr…

Android:JNI实战,加载三方库、编译C/C++

一.概述 Android Jni机制让开发者可以在Java端调用到C/C&#xff0c;也是Android应用开发需要掌握的一项重要的基础技能。 计划分两篇博文讲述Jni实战开发。 本篇主要从项目架构上剖析一个Android App如何通过Jni机制加载三方库和C/C文件。 二.Native C Android Studio可…

高防IP如何保护服务器

首先我们要知道什么是高防IP~ 高防IP是指高防机房所提供的ip段&#xff0c;主要是针对互联网服务器遭受大流量DDoS攻击时进行的保护服务。高防IP是目前最常用的一种防御DDoS攻击的手段&#xff0c;用户可以通过配置DDoS高防IP&#xff0c;将攻击流量引流到高防IP&#xff0c;防…

样品前处理国产微波消解罐的优势

国产微波消解罐参数&#xff1a; 型号 MARS5、MARS6等 内罐材质 TFM 外罐材质 宇航纤维复合材料 耐温 -200&#xff5e;260℃ 规格 25ml、55ml、75ml、100ml、110ml 厂家秉承 “客户、服务、技术”为根本的理念国产替代微波罐受到众多用户的青睐。 特性&#xff1a…

【LeetCode】每日一题 2024_1_21 分割数组的最大值(二分)

文章目录 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01;题目&#xff1a;分割数组的最大值题目描述代码与解题思路 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 今天是 hard&#xff0c;难受&#xff0c;还好有题解大哥的清晰讲解 题目&a…

论文阅读:Vary论文阅读笔记

目录 引言整体结构图数据集构造Vary-tiny部分Document Data数据构造Chart Data构造Negative natural image选取 Vary-base部分 引言 论文&#xff1a;Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models Paper | Github | Demo 许久不精读论文了&#x…

文件操作与IO(3)

文件内容的读写--数据流 这里我们将要讲到文件操作中的重要概念--流. 之前也在C语言讲解中提到了文件流的概念---读写文件内容 分为这几步:(1)打开文件;(2)读/写文件;(3)关闭文件. 数据流主要分为字节流和字符流. 字节流:以字节为单位进行读写(代表:InputStream,OutputStrea…

20240122让WIN10在启动的时候进入安全模式

20240122让WIN10在启动的时候进入安全模式 2024/1/22 18:30 缘起&#xff1a;为了使用openai的whisper识别小语种【非英语】电影的字幕&#xff0c;决定开始折腾CUDA了&#xff01;https://github.com/openai/whisper https://www.bilibili.com/video/BV1d34y1F7qA https://www…

API协议设计的十种技术

文章目录 前言一、REST二、GraphQL三、gRPC&#xff08;google Remote Procedure Calls&#xff09;四、Webhooks五、服务端的事件发送——SSE&#xff08;Server-sent Events&#xff09;六、EDI&#xff08;Electronic Data Interchange&#xff09;七、面向API 的事件驱动设…