LeetCode 670 最大交换 (暴力+贪心、Python)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 !

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-swap

问题描述

给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。

示例 1 :输入: 2736
输出: 7236
解释: 交换数字2和数字7。示例 2 :输入: 9973
输出: 9973
解释: 不需要交换。注意:给定数字的范围是 [0, 108]

方法一:暴力法

两重循环,每次交换两个相邻的数,取最大值。

T = int(input())for i in range (T):res = ""a = input()res = int(a)for i in range (len(a)):for j in range (i+1, len(a)):b = list(a)b[i], b[j] = b[j], b[i]m = int(''.join(b))res = max(res, m)print(res)

方法二:贪心算法

  • 我们将计算 last[d] = i,最后一次出现的数字 d(如果存在)的索引i。
  • 然后,从左到右扫描数字时,如果将来有较大的数字,我们将用最大的数字交换;如果有多个这样的数字,我们将用最开始遇到的数字交换。
T = int(input())def fu(a):t = list(a)pos = [0 for _ in range (10)]# 记录每个数字出现的最后一次出现的下标for i in range (len(a)):pos[int(a[i])] = i# 从左向右扫描,找到当前位置右边的最大的数字并交换for i in range (len(a)-1):# 找最大,所以倒着找for j in range (9, int(t[i]), -1):if pos[j] > i:t[pos[j]], t[i] = t[i], t[pos[j]]# 只允许交换一次,因此直接返回return int(''.join(t))return a  for v in range (T):a = input()res = fu(a)print(res)

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

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

相关文章

shark恒破解笔记3-EAX决定胜负

PEID查壳 od载入 输入假的注册码 查找出错字符串 往上查找是否有关键跳转和关键call 可以看到此处有个je跳转 实现了跳转,并且跳过了我们注册成功的地址 网上查找这个跳转的关键call,这个call很有可能就是判断一系列注册码是否正确然后返回一个代表是否注…

中国智能建造关键领域技术发展的战略思考!

来源:我国智能建造关键领域技术发展的战略思考[J].中国工程科学,2021,23(4):64-70.作者:陈珂,丁烈云 中国工程院丁烈云院士科研团队在中国工程院院刊《中国工程科学》2021年第4期撰文,阐述了智能建造的基本概念与重要性&#xff0…

Java常用的一些容器

转自:https://www.cnblogs.com/LipeiNet/p/5888513.html 前言:在java开发中我们肯定会大量的使用集合,在这里我将总结常见的集合类,每个集合类的优点和缺点,以便我们能更好的使用集合。下面我用一幅图来表示 其中淡绿色…

牛客 21302 被3整除的子序列 (动态规划、Python)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 524288K,其他语言1048576K 64bit IO Format: %lld 链接:https://ac.nowcoder.com/acm/prob…

图灵奖得主杨立昆:AI+时代,未来将会如何被改变

来源:杨立昆《科学之路:人,机器与未来》编辑:蒲蒲人工智能(AI)近年来的发展可以说包罗万象,几乎涵盖了所有与机器智能化相关的内容。无论是机器人、冰箱、汽车还是软件应用,只要你想…

信号的互相关函数由傅里叶变换形式表达以及推导

互相关函数的信号傅里叶变换形式表达以及推导 1.我们要实现怎样的目标? 如果有两个复信号, 连续信号表示为y1(t)y_1(t)y1​(t)和 y2(t)y_2(t)y2​(t); 离散信号表示为y1(n)y_1(n)y1​(n)和y2(n)y_2(n)y2​(n); 两个信号的互相关函数表示为R…

类与对象和对应方法、封装

1转载于:https://www.cnblogs.com/SlookUp/p/10729454.html

牛客 13822 Keep In Line(枚举与暴力、Python)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 链接:https://ac.nowcoder.com/acm/problem/13822 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语…

基于IMAGE法的房间回响模型创建、C++代码实现、matlab仿真

基于IMAGE法的房间回响模型创建、C代码实现、matlab仿真1.模型简介 \qquad在处理声音信号时,我们要对信号先进行采集。那么我们就必须要有,一个发出声音的声源,一个进行声音采集的传感器。并且这两者一般都位于房间之中,处于房间内…

花落有机化学!诺贝尔化学奖不再是“理综奖”

来源:学术头条北京时间 2021 年 10 月 6 日下午 5 点 50 分,2021 年诺贝尔化学奖重磅公布,德国马普煤炭研究所所长 Benjamin List、普林斯顿大学化学教授 David W.C. MacMillan 获奖,以表彰他们对“不对称有机催化做出的贡献”。关…

关于Oracle与MySQL的使用总结

平时使用的比较多的数据库管理系统就是Oracle和MySQL,我在这里记录下使用过程中的遇到的问题以及解决方案,以备不时之需 Oracle 关于表空间 Oracle创建数据的代价还是比较大的,所以使用表空间的概念,每个表空间相互独立。这里记录…

牛客 16499 解方程 (数学、Python)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 链接:https://ac.nowcoder.com/acm/problem/16499 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 131072K,其他语…

美军认知技术发展态势

来源:人机与认知实验室摘要:美军正在大力发展人工智能中的认知技术,认知技术的进步将极大的促进人机融合智能的发展。首先,综述了美军认知技术的发展历史,从自然语言处理、环境感知、机器人自主控制、自主编组协调、人…

数据结构——单链表的C++实现

数据结构——单链表的C实现\qquad单链表的创建、求长度、查找、插入和删除的C实现。 #include<iostream> using namespace std;//1.定义 typedef struct Node* List; struct Node {int num;Node* next; }; void input(int* a) {cin >> *a; }//2.创建链表 void Cre…

正则表达式写验证器

package com.office.utility;import java.util.regex.Pattern;/*** 校验器&#xff1a;利用正则表达式校验用户名、密码、邮箱、手机号等* author liujiduo*/ public class Validator {/*** 正则表达式&#xff1a;验证用户名*/public static final String REGEX_USERNAME &qu…

【操作系统复习】中断和异常

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 中断和异常一、中断机制的诞生二、中断的概念和作用三、中断的分类四、外中断的处理过程一、中断机制的诞生 &#x1f481; 早期的计算机&#xff1a;各程序只能串行执行&#xff0c;系统资源利用…

东南亚的招聘骗局,程序员请注意!

阅读本文大概需要 5.2 分钟。 总有些我认为是常识的事情&#xff0c;在别人看来都是第一次接触。很多骗局都是如此&#xff0c;圈内人不上当&#xff0c;圈外人不警惕。毕竟骗子吃的就是信息不对称的生意。关于东南亚的招聘骗局&#xff0c;便是如此。 他们当前主力针对的是程序…

2021年深度学习哪些方向比较有研究潜力?

来源&#xff1a;知乎问答作者&#xff1a;陀飞轮、Zhifeng、谢凌曦转自&#xff1a;极市平台深度学习成为近些年来较为热门的领域&#xff0c;算法工程师这一岗位也变得越发的抢手&#xff0c;尽管已经踏入了这一领域但对整体的大环境其实是还不能够准确的把握。从研究方向去看…

数据结构——堆栈的C++实现

数据结构——堆栈的C实现\qquad堆栈的创建、判断是否为空&#xff0c;入栈&#xff0c;出栈操作的C实现。 #include<iostream> using namespace std;//1.定义 typedef struct Node* Link; struct Node {int num;Link next; };//2.创建堆栈头结点 Link CreateStack() {Li…

视觉感知与认知

2. 视觉感知与认知 2. 视觉感知与认知2.1 感知与认知2.1.1 视觉感知处理过程2.1.2 格式塔理论2.1.2.1 贴近法则 (proximity)2.1.2.2 相似法则 (similarity)2.1.2.3 连续原则 (continuity)2.1.2.4 闭合原则 (closure)2.1.2.5 共势原则 (common fate)2.1.2.6 好图原则 (good figu…