[LeetCode] 46. Permutations

在Unity3d使用yolov8的onnx模型 输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。 阅读详情

Permutations

Given a collection of distinct integers, return all possible permutations.

Example:
Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]

解析

生成全排列。

解法1:DFS

用一个visited数组表示是否访问,类似于DFS的方法进行搜索。

class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {
        int size = nums.size();
        vector<vector<int> > res;
        vector<bool> visited(size,0);
        Permutation(res,nums, visited, {}, 0);
        return res;
    }
    
    void Permutation(vector<vector<int> >& res, vector<int>& nums, vector<bool>& visited, vector<int> tmp, int index){
        if(index == nums.size()){
            res.push_back(tmp);
            return ;
        }
        for(int i=0; i<nums.size();i++){
            if(visited[i])
                continue;
            visited[i] = 1;
            tmp.push_back(nums[i]);
            Permutation(res,nums, visited, tmp,index+1);
            visited[i] = 0;
            tmp.pop_back();
        }
    }
};

解法2:交换

也是使用递归函数,用index来确定已经固定好的点,从index开始与后面的交换。

class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int> > res;
        Permutation(res,nums, 0);
        return res;
    }
    
    void Permutation(vector<vector<int> >& res, vector<int> nums, int index){
        if(index == nums.size()-1){
            res.push_back(nums);
            return ;
        }
        for(int i=index; i<nums.size();i++){
            swap(nums[index], nums[i]);
            Permutation(res,nums, index+1);
            swap(nums[index], nums[i]);
        }
    }
};

解法3:CareerCup解法

当n=1时,数组中只有一个数a1,其全排列只有一种,即为a1
当n=2时,数组中此时有a1a2,其全排列有两种,a1a2和a2a1,那么此时我们考虑和上面那种情况的关系,我们发现,其实就是在a1的前后两个位置分别加入了a2
当n=3时,数组中有a1a2a3,此时全排列有六种,分别为a1a2a3, a1a3a2, a2a1a3, a2a3a1, a3a1a2, 和 a3a2a1。那么根据上面的结论,实际上是在a1a2和a2a1的基础上在不同的位置上加入a3而得到的。
_ a1 _ a2 _ : a3a1a2, a1a3a2, a1a2a3
_ a2 _ a1 _ : a3a2a1, a2a3a1, a2a1a3

    vector<vector<int> > permute(vector<int>& nums) {
        if(nums.empty())
            return vector<vector<int> > (1, vector<int>{});
        int first = nums[0];
        nums.erase(nums.begin());
        vector<vector<int> > res;
        vector<vector<int> > tmp = permute(nums);
        for(int i=0;i<tmp.size();i++){
            for(int j=0;j<=tmp[i].size();j++){
                tmp[i].insert(tmp[i].begin()+j, first);
                res.push_back(tmp[i]);
                tmp[i].erase(tmp[i].begin()+j);
            }
        }
        return res;
    }

解法4:投机取巧STL

class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int>> res;
        sort(nums.begin(), nums.end());
        res.push_back(nums);
        while (next_permutation(nums.begin(), nums.end())) {
            res.push_back(nums);
        }
        return res;
    }
};

http://www.cnblogs.com/grandyang/p/4358848.html

Qt 5.14安装(配置MSVC 2017) 本文主要介绍Qt MSVC的安装,VS2017. 阅读详情

相关推荐

win 11bitlocker恢复密匙一般情况的解决方式(这里指的是你现在使用的微软账户一直没有变更过)

本来没有打算写这一篇解决帖子的,但是最近好多微博的友友都在私我询问解决方法,孩子虽然很热心,但是真的回复不过来了,打字太累了,这里给大家简单指个路,希望能够对大家有所帮助。 当时出现这个问题的时候,一搜网上的解决方法都是重装系统什么的,真是吓死孩子啦。后来去微软的官网倒腾了半天解决了问题。其实只要你没有改过微软账户,你可以直接试试我这个方法,大概三到五分钟解决问题吧。 和我情况不一样的也可以参考一下贴吧里一些大佬的分享,或者实在着急我感觉去淘宝上找个解决也不是未尝不可。 出现问题: 解决方案: 直接去微软

zhiqingxue的博客 2万+

[Leetcode力扣 46] Permutations

一、题目描述 题意:给定互不相同数字的数组,输出这个数组的全排列。这个问题应该比较基础,但是我没有独立想到任何一种方法。。。下面就是总结一下我见过的方法,并尝试尽量具体地理解。 二、解法一:哈希表标记法 这种方法可以按照字典序输出全排列,当然这个题目里的元素并不是有序的,但是这种方法输出的也是数组下标的字典序全排列。 这种方法的搜索树如下,以[1,2,3]为例: 可以看出这种搜索树是下面这种的变体: 下面这种序列很容易生成,只需要DFS里面加上for循环就行了,并且只要每次for循环

NiuYutao的博客 283

EB Tresos激活失败?3种实用解决方案帮你搞定(含离线激活步骤)

本文针对EB Tresos软件激活失败问题,提供了三种实用的解决方案。详细分析了激活失败的常见根源,并系统阐述了在线环境下的排查步骤、无网环境下的离线激活全流程,以及高级许可证环境修复方法,帮助汽车电子工程师快速恢复开发环境。

milk8的博客 609

Leetcode46. Permutations

Leetcode46. Permutations Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3] Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]...

magic_jiayu的博客 227

LDO稳定性分析

根据补偿方式和拓扑结构的不同,三个极点之间的相互位置有可能发生变化,但 是 LDO 通常采用较大的输出电容 Cout,以及较大的调整管也会导致较大的 Cpar, 所以 p1、p2 通常位于较低的频率处,而 p3 和 z1 则由于 Resr较小会位于较高的频 率处。不过幸运的是,对于较大的 Cout来说,只要选择合适的 Resr,就可以将左半平面零点 Z1 的频率降低,甚至使 Z1 进入单位增益带宽内,左半平面零点的进入将对相位有所改善,这不仅可以消除振荡的风险,还可以在单位增益频率处得到较好的相位裕度。

模拟芯片设计 1593

SPSS回归分析(线性:一元(简单)和多重;非线性logistic)

SPSS线性回归分析回归分析一、线性模型(针对连续因变量,线性关系)(一)简单线性回归(一元线性回归)1、绘制散点图2、建立简单(一元)线性回归模型3、建立模型后,检查预测结果(二)多重回归分析1、绘制矩阵分布散点图(论文专用你懂的)2、建立多重回归模型point 1:自变量加入方法:逐步(步进)法3、建立模型后,检查预测结果二、非线性模型(将非线性问题转换为线性问题)1、logistic分析的回归模型1.1 建立回归模型1.2 利用回归模型进行预测 根据之前的学习,通过评价实验得到了主观数据, 通过 描述

weixin_44394352的博客 5万+

【leetcode】【medium】46. Permutations​​​​​​​

46. Permutations Given a collection ofdistinctintegers, return all possible permutations. Example: Input: [1,2,3] Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 题目...

lemonade13的博客 151

在Jetson orin板卡上部署ocr模型遇到错误

摘要:安装ONNX Runtime GPU版本时遇到问题,直接pip install onnxruntime-gpu会报错。解决方案是从test.pypi.org下载对应的.whl文件(如ort_nightly-1.14.0...aarch64.whl),本地安装后还需降级NumPy版本(如pip install numpy==1.26),以解决NumPy版本兼容性问题。整个过程涉及三个关键步骤:下载正确架构的wheel文件、本地安装、调整NumPy版本。

xdxd3c的博客 1526

[leetcode]46. Permutations

[leetcode]46. Permutations Analysis ummmmmmmmmmmmmmmmmmmmmmmmm~—— [ummmm~] Given a collection of distinct integers, return all possible permutations. 求全排列的题,这篇文章里面讲的很清楚,可以参考一下:https://blog....

weixin_32135877的博客 189

机器学习(三) ----------线性回归算法(梯度下降+正则化)

线性回归算法在机器学习中具有核心地位,它以其简单性和直观性为基础,为理解数据间的关系提供了基本框架。作为许多复杂算法的基础,线性回归不仅用于预测目标变量,还用于解释自变量对目标的影响。同时,它也是机器学习入门的经典算法,对于推广机器学习知识和技术具有重要意义。

2301_77539454的博客 1868

海思芯片YOLOv8模型部署完整指南:从RPN硬化到8bit量化精度优化

本文详细介绍了在海思芯片平台部署YOLOv8目标检测模型的完整方案,重点解决8bit量化精度损失问题。通过分析海思RPN硬化层的性能优势(1.9ms推理时间),对比不同量化策略(16bit仅损失0.6AP,8bit损失5.2AP),并深入定位到strides计算层是量化误差的主要来源。关键突破在于采用混合精度策略(敏感层16bit,其余8bit),使8bit量化AP回升4.1%,同时保持3.4ms的推理速度和60%的低NPU占用率。文章还提供了量化参数调整、校准数据集优化等进阶技巧,为边缘计算应用提供了性能

FJN110的博客 733

回溯Leetcode 46 Permutations

Leetcode 46 Permutations Problem Description: 经典回溯问题:无重复数字的全排列 具体的题目信息: https://leetcode.com/problems/permutations/description/ Example: Solution: class Solution { public: vector&lt;vec...

萤火虫啊飞呀飞 257

LeRobot 入门教程(七)数据集

LeRobot Dataset v3.0 是机器人学习数据的标准化格式,支持多模态时间序列数据和视频的统一访问。该版本通过基于文件的存储(Parquet/MP4)、关联元数据和Hub原生流式处理等新特性,显著提升了性能并降低了存储开销。文档详细介绍了格式设计、安装使用、数据记录与加载方法,以及从v2.1迁移到v3.0的步骤,特别针对大型数据集(如DROID 1.0.1)的处理提供了SLURM集群移植方案。v3.0通过优化文件组织和元数据管理,实现了更快的加载速度、更高的内存效率和更好的可扩展性。

2506_90492529的博客 2055

Leetcode 46-47. Permutations backtrack

Leetcode 46. Permutations  理解: for 循环从0--n-1表示置换首位为1-n,动态规划问题,剩下的再进行全排列,for循环首句则判断是否为部分解,函授首句判断的是否为最终解,因为tmp一定是满足部分解,所以判断最终解部分只将检查大小就可以输出结果了。 注意点1:backtrack 里是否有指示位置的整型变量i 注意点2:  new ArrayL

独钓寒江雪 316

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LeetCode力扣之46_Permutations

Given a collection of distinct numbers, return all possible permutations.For example,[1,2,3] have the following permutations:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]package...

LeeWei 233

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Leetcode 46. Permutations (全排列)

46. Permutations DescriptionHintsSubmissionsDiscussSolution Given a collection of distinct numbers, return all possible permutations. For example, [1,2,3] have

ysCover 373

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[leetcode] 46. Permutations

Description Given a collection of distinct integers, return all possible permutations. 全排列的Python和C++的代码实现。

Learning from the mistakes 222

LeetCode 46. Permutations

问题链接 LeetCode 46. Permutations 题目解析 求解一个无重复元素序列的全排列。 解题思路 什么是全排列?理解一下题意,简单来讲,就是求解序列中元素的所有排列方法,一共有A(n, n)=n!种排列。可以采用递归、非递归、插空等方法求解。 求解全排列参考链接:数组的全排列。 注意:本题中已经说明没有重复元素,对于有重复元素的情况,将在47. Permutations II在给...

weixin_30258027的博客 71

【LeetCode】46. Permutations 的两种解法及注释、分析

46. Permutations  Given a collection of distinct numbers, return all possible permutations. For example, [1,2,3] have the following permutations: [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3

Jin_Kwok的博客 1261

leetcode-46. Permutations

leetcode-46. Permutations题目: 这一题的基本思路就是典型的回溯法。但是问题是怎么去查询下一层迭代。基本的方法就是每次加入不同的pos位置,然后如果List本身包含了这个pos的值则说明已经加入过了。 当然这是针对这题的,如果是有重复值的话就比较麻烦了。目前的思路和之前一题有类似的情况,就是先排序然后判断当前pos和pos-1是否一致来跳过相同的加入。这样的思路行不行。不过这个我没写过了。以

千念飞羽的专栏 400

【LeetCode】46.Permutations(Medium)解题报告

【LeetCode】46.Permutations(Medium)解题报告题目地址:https://leetcode.com/problems/permutations/description/ 题目描述:   Given a collection of distinct numbers, return all possible permutations.   For example,

郝春雨的博客 274

LeetCode 46. Permutations 题解

本题是回溯算法的经典问题,主要考察对回溯思想的理解和应用。回溯算法:使用 visited 数组来标记已使用的数字,逻辑清晰易懂。交换法回溯:不需要额外的 visited 数组,通过交换元素来实现,空间复杂度更低。在实际应用中,两种方法都可以使用。对于初学者来说,第一种方法可能更容易理解,因为它的逻辑更直观。而第二种方法则更简洁,空间效率更高。无论使用哪种方法,核心思想都是通过回溯来生成所有可能的排列,这对于解决许多组合问题都有帮助,例如组合总和、子集问题等。

cannonjinx的博客 4329

LeetCode46:Permutations

直观上看这道题就是一道dfs问题,所以我们按照dfs的套路直接写就行。这个题和47题Permutations2很相似,但是这道题相对的难度要第一写,因为这个给定的序列里面没有重复。我们在递归调用的时候设置一个visit数组记录一下当前位置是不是被访问就可以了。然后每一个递归调用都是从序列位置开始。 代码入下: vector&lt;vector&lt;int&gt;&gt; permute(vec...

李威的博客 296

LeetCode 46. Permutations(dfs)

题目来源:https://leetcode.com/problems/permutations/ 问题描述 46.Permutations Medium Given a collection ofdistinctintegers, return all possible permutations. Example: Input: [1,2,3] Output: [ [1...

da_kao_la的博客 300

【LeetCode】 46. Permutations 全排列(Medium)(JAVA)

【LeetCode】 46. Permutations 全排列(Medium)(JAVA) 题目地址: https://leetcode.com/problems/permutations/ 题目描述: Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3...

qq_16927853的博客 249

【Leetcode】46. Permutations

题目地址: https://leetcode.com/problems/permutations/ 生成全排列。经典的回溯算法,对应着多叉树的深搜。首先想象一下我们要深搜的树,可以画成下面的样子: 先设一个list,存储遍历这棵树的时候,当前走到的节点。每当遍历到叶子节点,也就是当前的list已经有了333个数的时候,就要将这个list加入最后的结果集,然后回溯回去。所以list.size()=...

数学、算法爱好者的博客 322
上一篇: [LeetCode] 45. Jump Game2
下一篇: [LeetCode] 47. Permutations 2
Peng_maple
博客等级 码龄10年 0粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值