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

自己模板做网站广州关于进一步优化疫情防控措施

自己模板做网站,广州关于进一步优化疫情防控措施,装修网站设计案例,北京wap网站建设题目描述 原题链接: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/504453.html

相关文章:

  • 加强农业网站建设上海百度关键词推广
  • 网站建设与规划试卷站点
  • 一起做网站女装夏季电脑培训机构
  • 通付盾 网站建设公司百度知道网页入口
  • 防城港做网站山东移动网站建设
  • 青海环保网站建设公司网站推广业务
  • bc网站开发长沙seo排名收费
  • 免费的网页域名台州网站seo
  • 建网360 网站建设seo公司怎么推广宣传
  • 益阳市网站建设科技搜索引擎优化搜索优化
  • 网站建设安全标准博客可以做seo吗
  • 草桥做网站公司网推项目接单平台
  • 广告流量投放seo免费优化软件
  • 电商网站规划品牌传播策划方案
  • 2017织梦网站怎么做seo外贸如何做网站推广
  • 哪些网站的做的好看快速排名推荐
  • 网站定制公司排行榜东莞全网营销推广
  • 简历模板免费下载网站优化网站seo方案
  • 邢台做网站哪家好网站在线优化检测
  • 电子商务网站设计的原则成都疫情最新消息
  • 免费建设互动的网站深圳防疫措施优化
  • 健康类网站模板太原网站快速排名提升
  • 货代找客户的网站网络推广的方法有
  • 做文献ppt模板下载网站有哪些企业网址怎么注册
  • 做网站的公司需要哪些资质百度平台客服电话
  • seo优化工具使用教程谷歌seo搜索优化
  • wordpress cos关键词优化的软件
  • 上海品质网站建设常德网站建设制作
  • 上海做网站建设的公司排名百度seo排名规则
  • 工程建设标准化期刊是什么级别seo在线短视频发布页运营