领扣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. 上一个排列相关推荐

  1. 领扣LintCode问题答案-52. 下一个排列

    领扣LintCode问题答案-52. 下一个排列 目录 52. 下一个排列 鸣谢 52. 下一个排列 给定一个整数数组来表示排列,找出其之后的一个排列. 排列中可能包含重复的整数 样例 1: 输入:[ ...

  2. 领扣LintCode问题答案-58. 四数之和

    领扣LintCode问题答案-58. 四数之和 目录 58. 四数之和 鸣谢 58. 四数之和 给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d) ...

  3. 领扣LintCode问题答案-57. 三数之和

    领扣LintCode问题答案-57. 三数之和 目录 57. 三数之和 鸣谢 57. 三数之和 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三 ...

  4. 领扣LintCode问题答案-33. N皇后问题

    领扣LintCode问题答案-33. N皇后问题 目录 33. N皇后问题 鸣谢 33. N皇后问题 n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击(任意两个皇后不能位于同一行, ...

  5. 领扣LintCode问题答案-2. 尾部的零

    领扣LintCode问题答案-2. 尾部的零 目录 2. 尾部的零 鸣谢 2. 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2 样例解释: 11! = 399 ...

  6. 领扣LintCode问题答案-46. 主元素

    领扣LintCode问题答案-46. 主元素 目录 46. 主元素 鸣谢 46. 主元素 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一. 你可以假设数组非空,且数组 ...

  7. 领扣LintCode问题答案-17. 子集

    领扣LintCode问题答案-17. 子集 目录 17. 子集 鸣谢 17. 子集 给定一个含不同整数的集合,返回其所有的子集. 子集中的元素排列必须是非降序的,解集必须不包含重复的子集. 样例 1: ...

  8. 领扣LintCode问题答案-15. 全排列

    领扣LintCode问题答案-15. 全排列 目录 15. 全排列 鸣谢 15. 全排列 给定一个数字列表,返回其所有可能的排列. 你可以假设没有重复数字. 样例 1: 输入:[1] 输出: [ [1 ...

  9. 领扣LintCode问题答案-35. 翻转链表

    领扣LintCode问题答案-35. 翻转链表 目录 35. 翻转链表 鸣谢 35. 翻转链表 翻转一个链表 样例 1: 输入: 1->2->3->null 输出: 3->2- ...

最新文章

  1. Java的类加载机制
  2. 哥伦比亚大学AI实验室主任Hod Lipson:阻碍无人驾驶技术发展的7个误区
  3. python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解
  4. CUDA10.0+python3.6+pytorch1.2.0+torchvision0.4.0
  5. php为什么没有rz 命令,Linux上传文件-    命令之rz
  6. (9)SPI接收verilog与Systemverilog编码
  7. [新地址]VS2010详细下载地址!Yeah~!
  8. 高校就业管理系统mysql_数据库课程设计---大学生就业管理系统数据库设计.pdf
  9. SIFT原作者David Lowe主页
  10. MIPI DSI协议笔记
  11. tempfile.mkstemp 详解
  12. BeyondCompare4完美“破解“
  13. 安装谷歌插件,程序包无效,解决方法
  14. wtl单文档选项_[翻译]WTL开发者指南 第1章 WTL概述
  15. Could not publish server configuration for Apache Tomcat v7.0.22 at localhos
  16. 阿里云国际站实名认证上传材料填写样例(域名持有者为组织)
  17. 计算机组成原理概念学习DAY7——外围设备
  18. java-php-python-ssm计算机网络精品课程网站计算机毕业设计
  19. [高通SDM450][Android9.0]双屏异显、双屏异触
  20. java中输入字符串并输入每个汉字的ASC码

热门文章

  1. 为沙发添加花纹(每天一个PS小项目)
  2. 已知二叉树前序中序,求后序代码实现
  3. 《Java程序设计》第17周课程设计:《猜猜看》游戏 第三天
  4. hdu2612——Find a way
  5. 女程序员努力写代码,天天加班,却被主管劝退,理由是“周末不加班,竟然和男朋友约会,触犯公司大忌!”...
  6. 【数据挖掘】高斯混合模型 ( 高斯混合模型参数 | 高斯混合模型评分函数 | 似然函数 | 生成模型法 | 对数似然函数 | 高斯混合模型方法步骤 )
  7. 接口自动化测试-接口封装思想
  8. RabbitMq 本地连接报错 org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Listener
  9. vsftp日志查看_vsftp查看FTP日志
  10. 计算机英语听力题,听对话练习听力Listen 80:Talking About Computers