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

云网站功能上海网站建设开发公司

云网站功能,上海网站建设开发公司,恐怖小说网站怎么做,网站制作的评价指标题目: 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列…

题目

整数数组的一个 排列  就是将其所有成员以序列或线性顺序排列。

  • 例如,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 的下一个排列。

必须 原地 修改,只允许使用额外常数空间。

理解:看成数字,逐渐变大,123  132  213  231  312  321,321的下一个是123

方法

代码

class Solution {public void nextPermutation(int[] nums) {int n = nums.length, k = n - 1;while (k - 1 >= 0 && nums[k - 1] >= nums[k]) k--;if (k == 0) {reverse(nums, 0, n - 1);} else {int u = k;while (u + 1 < n && nums[u + 1] > nums[k - 1]) u++;swap(nums, k - 1, u);reverse(nums, k, n - 1);}}void reverse(int[] nums, int a, int b) {int l = a, r = b;while (l < r) swap(nums, l++, r--);}void swap(int[] nums, int a, int b) {int c = nums[a];nums[a] = nums[b];nums[b] = c;}
}

http://www.15wanjia.com/news/44419.html

相关文章:

  • 公司可以备案几个网站如何做谷歌seo推广
  • 大型网站快速排名百度集团官网
  • php做网站商城系统怎么样seo推广主要做什么
  • 做动态网站的软件下载市场营销活动策划方案
  • 六安网站推广哪个网站好
  • 免费做网站支持绑定营销案例最新
  • 南宁手机平台网站建设搜索引擎优化指的是
  • dota2海涛做的网站焦作seo推广
  • 十堰市网站建设全渠道营销案例
  • gom传奇网站建设淮北网络推广
  • 说明电子商务网站的建设流程南京百度seo排名优化
  • 个人可以做招聘网站吗神马网站快速排名案例
  • 企业网站建设的建议宣传推广的形式有哪些
  • 邪恶做网站百度客服在线客服入口
  • 做简单的动态网站教程河南网络推广公司
  • wordpress鼠标停留优化电脑的软件有哪些
  • 建宣传网站国内销售平台有哪些
  • 中国人民银行官方网站美国疫情最新情况
  • 松江网站制作百度识图在线网页版
  • php网站开发中如何大数据
  • 那些网站做汽车可靠性关键词挖掘工具爱网
  • 多用户商城网站建设方案广告营销公司
  • 跨境独立站排名seo网站诊断流程
  • 网站空间域名多少钱百度推广竞价排名技巧
  • 怎么建设自己的一个服务器网站免费crm
  • 广州市建设工程交易中心网站太原seo全网营销
  • 日语影视网站制作教程seo去哪学
  • php网站导航优化营商环境的意义
  • 上海市建设安全协会网站免费的推广网站
  • 网站建设 从入门到精通pdf网络营销案例100例