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

常州网站专业制作好看的网站模板

常州网站专业制作,好看的网站模板,网站建站的标准,网上装修公司哪家比较好题目描述 原题链接:31. 下一个排列 思路 从后往前,找到第一个小于右侧集合的数,从右侧集合中找到一个比该数大的最小的数替换上去。 然后,将右侧集合从小到排列,就为当前排列中,下一个排列的数。 代码实…

题目描述

在这里插入图片描述
在这里插入图片描述
原题链接:31. 下一个排列

思路

从后往前,找到第一个小于右侧集合的数,从右侧集合中找到一个比该数大的最小的数替换上去。
然后,将右侧集合从小到排列,就为当前排列中,下一个排列的数。

代码实现

class Solution:def nextPermutation(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""n = len(nums)        # 1、从倒数第二个数从右向左遍历i = n - 2# 找到第一个小于右侧集合的数while i >=0 and nums[i] >= nums[i + 1]:		# 此时右侧集合一定为单调递减i -= 1# 当该排列不是全为单调递减时if i >= 0:# 找到右侧集合中,比nums[i]的大最小的数j = n - 1while nums[j] <= nums[i]:j -= 1# 将该数放置到这个位置上,此时就找到了下一个排列中该位置上应有的数nums[i], nums[j] = nums[j], nums[i]# 因为右侧集合为单调递减,因此进行左右交换后一定会为单调递增l, r = i + 1, n - 1while l < r:nums[l], nums[r] = nums[r], nums[l]l += 1r -= 1

参考文章:带你发明下一个排列算法(Python/Java/C++/C/Go/JS/Rust)

http://www.dtcms.com/wzjs/339547.html

相关文章:

  • 做网站与网店运营免费外链发布
  • 有教做桥梁质检资料的网站吗外包公司和劳务派遣的区别
  • 网站建设公司外链怎么做免费浏览网站推广
  • 网站优化如何做seo搜索排名
  • 受欢迎的徐州网站建设百度seo文章
  • 制作网站的收入来源于哪里专业网站优化推广
  • 哪些网站可以做房产推广网店推广的作用是
  • 小狗做爰网站首页排名seo
  • 网站支付怎么做如何做百度搜索推广
  • 自己个人网站后台怎么做seo网站推广优化就找微源优化
  • 食品品牌推广方案百度app关键词优化
  • 成都网站建设公司湖南岚鸿营销技巧有哪些
  • 电商网站开发 上海广州企业推广
  • 织梦网站栏目访问目录找网站设计公司
  • 广州网站设计报价正规seo大概多少钱
  • 罗湖网站建设公司制作网页的工具软件
  • 承德市网站建设苏州百度快照优化排名
  • 有没有做门面设计的网站友链交易平台源码
  • 常州市网站优化口碑营销渠道
  • 网站过期查询洛阳seo网络推广
  • 诸城做网站建设的百度网盘手机app下载安装
  • 莱州做网站小程序开发需要哪些技术
  • 网站制作多少费用北京seo报价
  • 做私人网站 违法网站模板中心
  • 广东基层团组织建设部网站免费的网站推广软件
  • wordpress国内打开速度慢seo站长查询
  • 高端网站建设费用情况品牌营销服务
  • 猪八戒设计网站官网深圳谷歌seo推广
  • 好发信息网网站建设什么推广平台好
  • 购物网站开发中遇到的问题刚刚突发1惊天大事