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

LeetCode046全排列

题目:

给定一个 没有重复 数字的序列,返回其所有可能的全排列。

示例:

  • 输入: [1,2,3]

  • 输出:
    [
    [1,2,3],
    [1,3,2],
    [2,1,3],
    [2,3,1],
    [3,1,2],
    [3,2,1]
    ]

java:

public class Leetcode046 { static List<List<Integer>> res = new ArrayList<>(); static LinkedList<Integer> path = new LinkedList<>(); static boolean[] used; public static List<List<Integer>> permute(int[] nums) { if (nums.length == 0) { return res; } used = new boolean[nums.length]; permuteHelper(nums); return res; } private static void permuteHelper(int[] nums) { if (path.size() == nums.length) { res.add(new ArrayList<>(path)); return; } for (int i = 0; i < nums.length; i++) { if (used[i]) { continue; } used[i] = true; path.add(nums[i]); permuteHelper(nums); path.removeLast(); used[i] = false; } } public static void main(String[] args) { int[] nums = {1, 2, 3}; System.out.println(permute(nums)); } }

Go:

package LeetCode var ( result46 [][]int path46 []int used46 []bool ) func Permute(nums []int) [][]int { result46 = make([][]int, 0) path46 = make([]int, 0, len(nums)) used46 = make([]bool, len(nums)) dfs46(nums, 0) return result46 } func dfs46(nums []int, cur int) { if cur == len(nums) { tmp := make([]int, len(nums)) copy(tmp, path46) result46 = append(result46, tmp) } for i := 0; i < len(nums); i++ { if !used46[i] { path46 = append(path46, nums[i]) used46[i] = true dfs46(nums, cur+1) used46[i] = false path46 = path46[:len(path46)-1] } } } func main() { nums := []int{1, 2, 3} permute := LeetCode.Permute(nums) fmt.Println(permute) }

吹凉的不是温度.

如果大家喜欢我的分享的话.可以关注我的微信公众号

念何架构之路

http://www.jsqmd.com/news/84641/

相关文章:

  • day37简单的神经网络@浙大疏锦行
  • wpf 类图
  • 基于springboot的运动服服饰销售购买商城系统
  • 基于文献的‘12-文献代码复现‘:非线性模型预测控制(NMPC)多无人船USV编队控制form...
  • 【保姆级教程】爆火开源项目 Next AI Draw.io 上手指南:一句话画流程图
  • 韩语教程资源合集
  • 如何用DSPy优化RAG prompt示例
  • 英语口语资源合集
  • 鸿蒙PC UI控件库 - TextInput 文本输入框详解
  • 链表中的回文判断
  • 鸿蒙PC UI控件库 - PasswordInput 密码输入框详解
  • 【大模型预训练】07-数据处理流程设计:从原始数据到模型输入的端到端处理链路
  • 基于VMD-CPA-KELM-IOWAl-CSA-LSSVM碳排放的混合预测模型研究附Matlab代码
  • 【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究附Matlab代码
  • 基于6种最新算法(小龙虾优化算法COA、MSA、RTH、NOA、BFO、SWO)求解机器人路径规划研究附Matlab代码
  • 【数据结构】排序
  • 【路径规划】基于RRT快速探索随机树算法在包含圆形障碍物的环境中寻找从起点到目标点的路径附matlab代码
  • 【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析附Matlab代码
  • go构建web服务
  • 夜莺监控设计思考(三)时序库、agent 的一些设计考量
  • 系统基础服务
  • 数据结构:二叉排序树,平衡二叉树,红黑树的介绍
  • 软件测试面试题集合
  • AI中的优化5-无约束非线性规划之凸性
  • Go Module构建
  • 【time-rs】Duration 结构体详解
  • 深圳|昆明|广州|东莞-奶茶原料批发供应商|奶茶原料供应商|奶茶原料批发市场|奶茶原料批发|奶茶原料推荐|奶茶原料公司——圣旺水吧 - 老百姓的口碑
  • Python基础知识的总结(2)
  • Go程序的执行顺序
  • Java 大视界 -- 基于 Java 的大数据分布式计算在地球物理勘探数据处理与地质结构建模中的应用