JAVA练习326- 下一个排列
题目概览整数数组的一个排列就是将其所有成员以序列或线性顺序排列。例如arr [1,2,3]以下这些都可以视作arr的排列[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。整数数组的下一个排列是指其整数的下一个字典序更大的排列。更正式地如果数组的所有排列根据其字典顺序从小到大排列在一个容器中那么数组的下一个排列就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列那么这个数组必须重排为字典序最小的排列即其元素按升序排列。例如arr [1,2,3]的下一个排列是[1,3,2]。类似地arr [2,3,1]的下一个排列是[3,1,2]。而arr [3,2,1]的下一个排列是[1,2,3]因为[3,2,1]不存在一个字典序更大的排列。给你一个整数数组nums找出nums的下一个排列。必须原地修改只允许使用额外常数空间。示例 1输入nums [1,2,3]输出[1,3,2]示例 2输入nums [3,2,1]输出[1,2,3]示例 3输入nums [1,1,5]输出[1,5,1]提示1 nums.length 1000 nums[i] 100来源31. 下一个排列 - 力扣LeetCode解题分析方法两次遍历以 [ 1,2,3,6,5,4 ] 为例他的下一个排列是 [ 1,2,4,3,5,6 ]可以看出一个排列中至少存在一个升序排列一个降序排列我们把共同的元素算给降序排列那么下一个排列就是将 最右侧升序排列中的最大值令此时索引为 i与 最右侧的降序排列中的较小值令此时索引为 jnums[ j ] 一定要大于 nums[ i ] 且 nums [ j ] 最小进行交换 然后将 i 后面的排列调整为升序原本已经为降序反转即可。具体实现从右侧开始遍历找到第一个相邻且满足 nums[ i ] nums[ j ] 的位置此时 [ i, j ] 就为右侧第一个升序排列[ j, n-1 ] 就为右侧第一个降序排列i 就是升序排列中的最大值。从右侧开测遍历找到第一个满足 num[ i ] nums[ k ] 的位置k 就是降序排列中较小值。交换 i 和 k反转 [ i 1, n-1 ]。时间复杂度O(n)空间复杂度O(1)class Solution { public void nextPermutation(int[] nums) { int n nums.length; if (n 1) { return; } int i n - 2, j n - 1; while(i 0 nums[i] nums[j]) { i--; j--; } if (i 0) { for (int z 0; z n / 2; z) { swap(nums, z, n - 1 - z); } return; } int k n - 1; while(nums[i] nums[k]) { k--; } swap(nums, i, k); int l n - 1; for (int z i 1; z (n i) / 2; z) { swap(nums, z, l--); } } private void swap(int[] nums, int i, int j) { int temp nums[i]; nums[i] nums[j]; nums[j] temp; } }

相关新闻

电流镜电路分析仿真电路结果与分析

电流镜电路分析仿真电路结果与分析

电流镜电路 目录电流镜电路电流镜电路分析仿真电路结果与分析实际电路搭建为什么不读万用表电流档位?电流镜电路分析仿真电路结果与分析 电流镜电路是一种电流复制技术,利用三极管的电流特性,选取两同类型的三极管(β\betaβ相同)&#xff0c…

2026/7/23 18:22:30 阅读更多 →
Django毕业设计-基于 Django 的鲜花线上销售与配送管理系统 个性化鲜花定制电商平台的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

Django毕业设计-基于 Django 的鲜花线上销售与配送管理系统 个性化鲜花定制电商平台的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/23 18:22:30 阅读更多 →
滞回运放电路仿真和分析

滞回运放电路仿真和分析

滞回比较电路分析 目录滞回比较电路分析过零滞回比较电路仿真分析波形图改进的波形图滞回比较电路仿真过零滞回比较电路仿真 正反馈运放电路构成比较器电路,由于运放本身就具有很大的开环增益,所有即便是带正反馈也并不会有什么影响,此处的正…

2026/7/23 18:22:30 阅读更多 →

最新新闻

【3D Max】保姆级教程:3D Max 2026 版详细图文安装指南 专业三维设计软件下载部署

【3D Max】保姆级教程:3D Max 2026 版详细图文安装指南 专业三维设计软件下载部署

软件概述 Autodesk 3ds Max 是业界领先的三维建模、动画和渲染解决方案,广泛应用于建筑可视化、游戏开发、影视特效及产品设计等领域。2026版本在原有功能基础上进行了多项优化,为专业设计师提供更高效的工作流程。 核心功能特性 建模系统 多边形建模&a…

2026/7/23 18:38:36 阅读更多 →
C++数据结构与程序设计:从环境配置到核心实现的学习指南

C++数据结构与程序设计:从环境配置到核心实现的学习指南

1. 项目概述:一份经典教材的完整资源意味着什么如果你正在学习C,或者从事软件开发的入门工作,大概率听说过或正在寻找一本名为《C数据结构与程序设计》的教材。这本教材,尤其是其中文版,在国内许多高校的计算机相关专业…

2026/7/23 18:38:36 阅读更多 →
吸引子引导与轨迹挖掘:AI Native Engineering 的收敛机制

吸引子引导与轨迹挖掘:AI Native Engineering 的收敛机制

AGE(Attractor Guided Engineering)是我在开发 nop-chaos-flux 过程中形成的一套 AI 原生工程方法论。 https://github.com/entropy-cloud/nop-chaos-flux 是一个完全由 AI 主导开发的大型前端框架型项目。 与一般的Harness方法论不同,AGE的思…

2026/7/23 18:38:36 阅读更多 →
小米路由器如何刷OpenWRT软路由系统并实现公网环境远程访问

小米路由器如何刷OpenWRT软路由系统并实现公网环境远程访问

文章目录 前言 1. 安装Python和需要的库 2. 使用 OpenWRTInvasion 破解路由器 3. 备份当前分区并刷入新的Breed 4. 安装cpolar内网穿透 4.1 注册账号 4.2 下载cpolar客户端 4.3 登录cpolar web ui管理界面 4.4 创建公网地址 5. 固定公网地址访问 前言 今天分享一下如何在小米路…

2026/7/23 18:38:36 阅读更多 →
[零刻]EQ12EQ12Pro安装OpenWRT软路由教程

[零刻]EQ12EQ12Pro安装OpenWRT软路由教程

[零刻]EQ12&EQ12Pro安装OpenWRT软路由教程 去发现同类优质开源项目:https://gitcode.com/ 本教程详细介绍了如何在[零刻]EQ12和EQ12Pro设备上安装OpenWRT软路由系统。通过本教程,您将能够将这些设备配置为功能强大的软路由,满足您的网络需求。 安…

2026/7/23 18:38:36 阅读更多 →
AI智能体开发指南:从核心概念到实战部署

AI智能体开发指南:从核心概念到实战部署

1. 从零构建AI智能体的核心概念解析AI智能体(AI Agent)是一种能够自主感知环境、制定决策并执行任务的智能系统。与传统的程序不同,智能体具备目标导向性、环境适应性和持续学习能力。当前主流的智能体开发主要基于大语言模型(LLM…

2026/7/23 18:37:36 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻