当前位置: 首页 > 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.cnnetsun.cn/news/42651.html

相关文章:

  • day37简单的神经网络@浙大疏锦行
  • 【水果识别】基于机器视觉苹果和香蕉的成熟度和大小检测附Matlab代码
  • JAVA的平凡之路——此峰乃是最高峰JVM-附加小菜-04
  • 【电力系统】电力系统优化与控制热液调度附Matlab代码和报告
  • 基于6种最新算法(小龙虾优化算法COA、MSA、RTH、NOA、BFO、SWO)求解机器人路径规划研究附Matlab代码
  • Golang实战:构建综合多头(逾期+反欺诈)风险查询的高性能客户端
  • 【TSP问题】基于蜣螂算法DBO和改进的蜣螂算法FADBO求解旅行商TSP问题(可根据自己的经纬度设置自己想要到达的地区)附Matlab代码
  • 【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析附Matlab代码
  • 数据结构:二叉排序树,平衡二叉树,红黑树的介绍
  • 软件复用的分类与实现
  • google服务
  • 进程PCB
  • 实战教程:1小时掌握逆向Unity游戏 (共13课时)
  • [从零构建操作系统]08 函数调用时栈的底层行为解析
  • 力扣hot100:搜索插入位置
  • Java冷启动全指南:从原理到实战优化
  • 测试 - 单元测试(JUnit)
  • C++中多态
  • c++经典练习题-多分支
  • qt为什么转向用cmake放弃qmake
  • 云屋音视频 SDK 凭何成为信创技术困局的 “破局者”?
  • 纯电动汽车动力经济性仿真:Cruise与Simulink联合仿真(2015版),包含BMS、再...
  • 【怎么理解maven中的镜像和仓库?】
  • comsol枝晶生长,沉积模型,包括:典型,形状成核,随机成核,均匀沉积,雪花晶形成过程。 适...
  • 终极指南:Qwen3-30B-A3B多GPU分布式推理完整解决方案
  • 腾讯混元语音驱动数字人技术:重塑动态视频生成新范式
  • 【MicroPython编程-ESP32篇】-Web页面显示DHT11传感器数据
  • DCDC电池模型:基于Matlab 2018b及以上的应用
  • Day 38 - Dataset 和 DataLoader
  • [C#][winform]基于yolov11的打架行为检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面