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

力扣刷题Day 60:全排列(46)

1.题目描述

2.思路

方法1:用Python自带的全排列函数itertools.permutations()。

方法2:参考Krahets佬的DFS回溯方法,先固定第1位元素,再固定第2位元素······固定到第n位元素时将当前序列加入结果列表,nums = [1, 2, 3]的情况分析见下图。

3.代码(Python3)

方法1:

class Solution:def permute(self, nums: List[int]) -> List[List[int]]:res = []for permutation in itertools.permutations(nums):res.append(permutation)return res

方法2:

class Solution:def permute(self, nums: List[int]) -> List[List[int]]:def dfs(fixed):print(fixed)if fixed == len(nums) - 1:# 将当前list的浅拷贝加入res(否则传入原nums的引用)res.append(list(nums))returnfor i in range(fixed, len(nums)):nums[fixed], nums[i] = nums[i], nums[fixed]dfs(fixed + 1)nums[fixed], nums[i] = nums[i], nums[fixed]res = []dfs(0)return res

4.执行情况

方法1:

方法2:

5.感想

Python的内置函数真的好强大,但是写算法题的时候还是少用吧,还是多磨练磨练自己。

相关文章:

  • 【Prometheus+Grafana实战:搭建监控系统(含告警配置)】
  • HTTP代理的实际用处有哪些?HTTP代理强在哪里?
  • 54、C# 委托 (Delegate)
  • 专栏更新通知
  • 如何手搓一个查询天气的mcp server
  • 【全因子组及排序】2022-1-23
  • 【计算机网络】IPv6和NAT网络地址转换
  • DeepSeek R1模型已完成小版本试升级
  • jQuery和CSS3卡片列表布局特效
  • 桃黑黑反斗战
  • Spring AI 整合聊天模型之智谱AI
  • 华为OD最新机试真题-按单词下标区间翻转文章内容-OD统一考试(B卷)
  • B3694 数列离散化
  • 【人工智能】微调革命:释放大模型的无限潜能
  • 基于seal密码库的格加密算法的原理、实现与应用
  • Shell - ​​Here Document(HereDoc)
  • AI Agent工具全景解析:从Coze到RAGflow,探索智能体自动化未来!
  • 制作一款打飞机游戏61:轨迹调度
  • git提交更改
  • 使用Milvus运行一个Milvus单机版实例
  • 北京旅游设计网站建设/网站搭建需要多少钱?
  • 51zwd一起做网站/seo优化需要做什么
  • 做阿里巴巴网站图片/网站优化排名推荐
  • 单页网站seo优化/市场调研方案范文
  • 自己做网站系统教程/广州百度快速优化排名
  • 网站建设专题/线上推广策略