领扣LintCode问题答案-51. 上一个排列
领扣LintCode问题答案-51. 上一个排列
目录
- 51. 上一个排列
- 鸣谢
51. 上一个排列
给定一个整数数组来表示排列,找出其上一个排列。
排列中可能包含重复的整数
样例 1:
输入:[1]
输出:[1]
样例 2:
输入:[1,3,2,3]
输出:[1,2,3,3]
样例 3:
输入:[1,2,3,4]
输出:[4,3,2,1]
public class Solution {/** @param nums: A list of integers* @return: A list of integers that's previous permuation*/public List<Integer> previousPermuation(List<Integer> nums) {// write your code hereif (nums == null|| nums.size() <= 1) {return nums;}int i = nums.size() - 1;for (; i >= 1; i--) {if (nums.get(i) < nums.get(i - 1)) {int count = i + 1;while (count < nums.size()) {if (nums.get(count) < nums.get(i - 1)&& nums.get(count) > nums.get(i)) {int p = nums.get(i);nums.set(i, nums.get(count));nums.set(count, p);}count++;}int temp = nums.get(i);nums.set(i, nums.get(i - 1));nums.set(i - 1, temp);for (int j = i; j < nums.size(); j++) {for (int k = j + 1; k < nums.size(); k++) {if (nums.get(k) > nums.get(j)) {int t = nums.get(j);nums.set(j, nums.get(k));nums.set(k, t);}}}break;}}if (i == 0) {Collections.reverse(nums);}return nums;}
}
原题链接点这里
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。
领扣LintCode问题答案-51. 上一个排列相关推荐
- 领扣LintCode问题答案-52. 下一个排列
领扣LintCode问题答案-52. 下一个排列 目录 52. 下一个排列 鸣谢 52. 下一个排列 给定一个整数数组来表示排列,找出其之后的一个排列. 排列中可能包含重复的整数 样例 1: 输入:[ ...
- 领扣LintCode问题答案-58. 四数之和
领扣LintCode问题答案-58. 四数之和 目录 58. 四数之和 鸣谢 58. 四数之和 给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d) ...
- 领扣LintCode问题答案-57. 三数之和
领扣LintCode问题答案-57. 三数之和 目录 57. 三数之和 鸣谢 57. 三数之和 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三 ...
- 领扣LintCode问题答案-33. N皇后问题
领扣LintCode问题答案-33. N皇后问题 目录 33. N皇后问题 鸣谢 33. N皇后问题 n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击(任意两个皇后不能位于同一行, ...
- 领扣LintCode问题答案-2. 尾部的零
领扣LintCode问题答案-2. 尾部的零 目录 2. 尾部的零 鸣谢 2. 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2 样例解释: 11! = 399 ...
- 领扣LintCode问题答案-46. 主元素
领扣LintCode问题答案-46. 主元素 目录 46. 主元素 鸣谢 46. 主元素 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一. 你可以假设数组非空,且数组 ...
- 领扣LintCode问题答案-17. 子集
领扣LintCode问题答案-17. 子集 目录 17. 子集 鸣谢 17. 子集 给定一个含不同整数的集合,返回其所有的子集. 子集中的元素排列必须是非降序的,解集必须不包含重复的子集. 样例 1: ...
- 领扣LintCode问题答案-15. 全排列
领扣LintCode问题答案-15. 全排列 目录 15. 全排列 鸣谢 15. 全排列 给定一个数字列表,返回其所有可能的排列. 你可以假设没有重复数字. 样例 1: 输入:[1] 输出: [ [1 ...
- 领扣LintCode问题答案-35. 翻转链表
领扣LintCode问题答案-35. 翻转链表 目录 35. 翻转链表 鸣谢 35. 翻转链表 翻转一个链表 样例 1: 输入: 1->2->3->null 输出: 3->2- ...
最新文章
- Java的类加载机制
- 哥伦比亚大学AI实验室主任Hod Lipson:阻碍无人驾驶技术发展的7个误区
- python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解
- CUDA10.0+python3.6+pytorch1.2.0+torchvision0.4.0
- php为什么没有rz 命令,Linux上传文件- 命令之rz
- (9)SPI接收verilog与Systemverilog编码
- [新地址]VS2010详细下载地址!Yeah~!
- 高校就业管理系统mysql_数据库课程设计---大学生就业管理系统数据库设计.pdf
- SIFT原作者David Lowe主页
- MIPI DSI协议笔记
- tempfile.mkstemp 详解
- BeyondCompare4完美“破解“
- 安装谷歌插件,程序包无效,解决方法
- wtl单文档选项_[翻译]WTL开发者指南 第1章 WTL概述
- Could not publish server configuration for Apache Tomcat v7.0.22 at localhos
- 阿里云国际站实名认证上传材料填写样例(域名持有者为组织)
- 计算机组成原理概念学习DAY7——外围设备
- java-php-python-ssm计算机网络精品课程网站计算机毕业设计
- [高通SDM450][Android9.0]双屏异显、双屏异触
- java中输入字符串并输入每个汉字的ASC码
热门文章
- 为沙发添加花纹(每天一个PS小项目)
- 已知二叉树前序中序,求后序代码实现
- 《Java程序设计》第17周课程设计:《猜猜看》游戏 第三天
- hdu2612——Find a way
- 女程序员努力写代码,天天加班,却被主管劝退,理由是“周末不加班,竟然和男朋友约会,触犯公司大忌!”...
- 【数据挖掘】高斯混合模型 ( 高斯混合模型参数 | 高斯混合模型评分函数 | 似然函数 | 生成模型法 | 对数似然函数 | 高斯混合模型方法步骤 )
- 接口自动化测试-接口封装思想
- RabbitMq 本地连接报错 org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Listener
- vsftp日志查看_vsftp查看FTP日志
- 计算机英语听力题,听对话练习听力Listen 80:Talking About Computers