31. 下一个排列 —— LeetCode (python) [PS: LeetCode 运行环境疑似出错]

# encoding = utf-8
# 开发者:xxx
# 开发时间: 20:26 
# "Stay hungry,stay foolish."class Solution(object):def nextPermutation(self, nums):import itertoolsl = len(nums)a = tuple(nums)nums.sort()permutations_lst = list(itertools.permutations(nums, l))index_u = permutations_lst.index(a)le = len(permutations_lst)if le == index_u+1:index_u = 0res1 = permutations_lst[index_u]return list(res1)res2 = permutations_lst[index_u+1]return list(res2)if __name__ == '__main__':nums = [1,2,3]sol = Solution()print(sol.nextPermutation(nums))

所用到的方法:
实现列表元素的排列组合

作者:永不止步
链接:https://www.zhihu.com/question/589445886/answer/3039740067
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

Python 中可以使用 itertools 模块来实现列表元素的排列组合。具体来说,可以使用 itertools.permutations 和 itertools.combinations 来实现排列和组合。

  • itertools.permutations(iterable, r=None) 返回 iterable 中所有长度为 r 的排列,如果 r 没有指定,则默认使用可迭代对象的长度。

例如,假设有一个列表 lst = [1, 2, 3],则可以使用 itertools.permutations 获取长度为 2 的所有排列:

 
  1. import itertools

  2. lst = [1, 2, 3]

  3. permutations_lst = list(itertools.permutations(lst, 2))

  4. print(permutations_lst)

输出结果为:

[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
  • itertools.combinations(iterable, r) 返回 iterable 中所有长度为 r 的组合。

例如,假设有一个列表 lst = [1, 2, 3],则可以使用 itertools.combinations 获取长度为 2 的所有组合:

 
  1. import itertools

  2. lst = [1, 2, 3]

  3. combinations_lst = list(itertools.combinations(lst, 2))

  4. print(combinations_lst)

输出结果为:

[(1, 2), (1, 3), (2, 3)]

找列表中的元素位置

#列表
listA = ["o", "u" , "i"]
#获取u的索引并打印
index_u = listA.index("u")
print(index_u)

LeetCode 运行结果

我的运行结果

请各位大佬指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android RecycleView 异步缓存 itemView 提升滑动性能

RecyclerView 是 Android 官方推荐的用于展示大量数据列表的控件,具有高度的可定制性和灵活性。我们可以通过自定义 LayoutManager、ItemDecoration、ItemAnimator 等来实现不同的布局和动画效果,满足各种需求。同时,RecyclerView 支持局部刷…

C语言什么是静态变量?如何实现?

一、问题 在编写程序的过程中,对于某些函数的局部变量的值,有时不希望它在函数调⽤结束后消失,也就是不释放该变量所占⽤的存储单元;同样,有时在程序设计中也希望某些外部变量只限于被本⽂件引⽤。这就需要使⽤静态变量…

2024年清明节安装matlab 2024a

下载安装离线支持包SupportSoftwareDownloader_R2024a_win64,地址https://ww2.mathworks.cn/support/install/support-software-downloader.html,运行软件(自解压运行),登录账号(需要提前在官网注册&#x…

反转链表 - LeetCode 热题 23

大家好!我是曾续缘💗 今天是《LeetCode 热题 100》系列 发车第 23 天 链表第 2 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1&#…

时序预测 | Matlab基于CFBP级联前向BP神经网络时序预测

时序预测 | Matlab基于CFBP级联前向BP神经网络时序预测 目录 时序预测 | Matlab基于CFBP级联前向BP神经网络时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab基于CFBP级联前向BP神经网络时序预测(完整源码和数据); 2.数据集为excel…

iHRM人力资源管理系统

iHRM人力资源管理系统 源码和教程都在此 https://www.yuque.com/aslwr/college/bxcq9npncyspgz9t ‍

开源模型应用落地-chatglm3-6b模型小试-入门篇(三)

一、前言 刚开始接触AI时,您可能会感到困惑,因为面对众多开源模型的选择,不知道应该选择哪个模型,也不知道如何调用最基本的模型。但是不用担心,我将陪伴您一起逐步入门,解决这些问题。 在信息时代&#xf…

5.111 BCC工具之ext4dist.py解读

一,工具简介 ext4dist跟踪ext4的读取、写入、打开和fsync操作,并将其延迟总结为2的幂次方直方图。 二,代码示例 #!/usr/bin/env pythonfrom __future__ import print_function from bcc import BPF from time import sleep, strftime import argparse# symbols kallsyms …

路由Vue-Router使用

Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。 介绍 | Vue Router (vuejs.org) 1. 安装 npm install vue-router4 查看安装好的vue-router 2. 添加路由 新建views文件夹用来存放所有的页面,在…

7-42 清点代码库

上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂…

笔记: javaSE day17天笔记

第十七天课堂笔记 Java常用类 数学类★★★ math java.lang.Math , 数学类 round(x) : 四舍五入 , 把 x加0.5 后向下取整 ceil(x) : 返回大于等于x的最小整数 , 向上取整 floor(x) : 返回小于等于x的最大整数 , 向下取整 sqrt(x) : 平方根 cbrt(x): 立方根 pow(a , b)…

LangChain Demo | Agent X ReAct X wikipedia 询问《三体》的主要内容

背景 LangChain学习中,尝试改了一下哈里森和吴恩达课程当中的问题,看看gpt-3.5-turbo在集成了ReAct和wikipedia后,如何回答《三体》的主要内容是什么这个问题,当然,主要是为了回答这问题时LangChain内部发生了什么。所…

基于大型语言模型的智能体(Agent)研究综述--人大

内容概述 论文地址:https://arxiv.org/pdf/2308.11432.pdf 这篇综述内容有35页,内容很多,俗话说一图胜千言,作者提供了5张精美的图片和3个表格,把这些搞明白后对这篇综述也就理解差不多了。文章的总体结构如下由6部分…

基于GaN的半导体光学放大器SOA

摘要 基于GaN的材料可覆盖很宽的光谱范围,以紫外、紫、蓝、绿和红波发射的激光二极管已经商业化。基于GaN的半导体光学放大器(SOA)具有提高激光二极管输出功率的能力,因此SOA将有很多潜在应用。未来需要利用短波、超快脉冲特性的…

Linux知识点记录

Linux知识点记录 1. 后台运行应用程序方法一:&方法二:nohup & 2. 一个shell脚本中执行多个应用程序3. 2>&14. shell脚本清除日志5. 通过grep查找匹配字符串 1. 后台运行应用程序 参考文章:https://blog.csdn.net/Pan_peter/…

常见的四种限流算法及基础实现

常见的四种限流算法及基础实现 什么是限流有哪些限流算法?限流算法固定窗口滑动窗口漏桶算法令牌算法 什么是限流 限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。 在高并发…

用kimichat批量识别出图片版PDF文件中的文字内容

图片版的PDF文件,怎么才能借助AI工具来提取其中全部的文字内容呢? 第一步:将PDF文件转换成图片格式 具体方法参见文章:《零代码编程:用kimichat将图片版PDF自动批量分割成多个图片》 第二步:识别图片中的…

修改亚马逊云科技账户的密码和MFA

要使用AWS CLI删除当前账户的多因素认证(MFA)设备并修改密码,你需要先确保已安装并配置了AWS CLI,并且你的账户有足够的权限执行这些操作。下面是如何分步进行的指导: 1. 删除MFA设备 首先,你需要找出MFA设备的序列号或ARN。可以…

Dynamo之雪花分形(衍生式设计)

你好,这里是BIM的乐趣,我是九哥~ 今天简单分享一些我收集的Dynamo的雪花分形案例吧,不过多讲解了,有兴趣的小伙伴,可以私信“雪花分形”获取案例文件,下面基本以分享为主: ******多图预警****…

IDEA 在 Windows 系统上常用的快捷键

IntelliJ IDEA 在 Windows 系统上常用的快捷键的详细介绍: 基本编辑操作: 复制(Ctrl C):复制选中的内容。剪切(Ctrl X):剪切选中的内容。粘贴(Ctrl V)&…