当前位置: 首页 > news >正文

【LeetCode】每日一题 2024_1_22 最大交换(模拟)

文章目录

  • LeetCode?启动!!!
  • 题目:最大交换
    • 题目描述:
    • 代码与解题思路

LeetCode?启动!!!


几百年没有见到题目描述这么短的题目了,泪目了

题目:最大交换

题目链接:670. 最大交换

题目描述:

代码与解题思路

func maximumSwap(num int) int {s := strconv.Itoa(num)maxIdx := len(s)-1p_i, q_max := -1, 0for  i := len(s)-2; i >= 0; i-- {if s[i] > s[maxIdx] { // 持续更新最大的数maxIdx = i} else if s[i] < s[maxIdx] { // s[i] 右边有更大的值, 保存下来, 等最后的时候交换p_i, q_max = i, maxIdx}}if p_i == -1 { // 不需要交换return num}// 转换成 byte 数组, 然后交换位置t := []byte(s)t[p_i], t[q_max] = t[q_max], t[p_i]ans, _  := strconv.Atoi(string(t))return ans
}

这类题目在刚开始学刷算法题的时候还是挺常见的,可以直接用暴力来解答,但是纯暴力的话,代码量会比较多,而且复杂度也会比较高,通常容易出现用例有情况没考虑到,然后成为 if 仙人,代码充满 if else 语句

我们需要先在草稿纸(如果你可以脑内模拟就当我没说)上模拟一下,把情况都考虑上,然后正序遍历,倒序遍历的思路都走上一遍,看看哪种比较容易去实现,做好标志位

多遇到几次类似的这种题目,就能逐渐得心应手了

相关文章:

  • 【SpringBoot】SpringBoot 项目初始化方法
  • RK3568笔记十一:mpp编解码
  • 算法(4)——前缀和
  • 当项目出现oom异常,应该如何去排查定位
  • JavaScript中的浏览器环境和规格
  • Flink中的容错机制
  • 【JavaWeb】日程管理系统 项目搭建 第二期
  • 从零开始配置vim(Windows版)
  • VUE---插槽
  • Double 4 VR智能互动教学系统:创新酒店管理专业课堂教学
  • 离线数据仓库-关于增量和全量
  • Javascript入门||基础篇
  • React16源码: React中的completeUnitOfWork的源码实现
  • k8s 使用cert-manager证书管理自签
  • php array_diff 比较两个数组bug避坑 深入了解
  • “大数据应用场景”之隔壁老王(连载四)
  • AHK 中 = 和 == 等比较运算符的用法
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java深入 - 深入理解Java集合
  • laravel with 查询列表限制条数
  • Python_OOP
  • SQLServer之索引简介
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 解析 Webpack中import、require、按需加载的执行过程
  • 使用SAX解析XML
  • 提醒我喝水chrome插件开发指南
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 在Unity中实现一个简单的消息管理器
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (3)选择元素——(17)练习(Exercises)
  • (笔试题)合法字符串
  • (独孤九剑)--文件系统
  • (二)Linux——Linux常用指令
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (四)Controller接口控制器详解(三)
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Scala的“=”符号简介
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转载)Linux 多线程条件变量同步
  • .naturalWidth 和naturalHeight属性,
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET中GET与SET的用法
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [CSS]CSS 的背景
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘
  • [hihocoder1395] 最大权闭合子图
  • [JavaScript]_[初级]_[不使用JQuery原生Ajax提交表单文件并监听进度]
  • [JS]JavaScript 简介
  • [JS设计模式]Prototype Pattern