首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
有重复项数字的全排列
[编程题]有重复项数字的全排列
热度指数:107672
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给出一组可能包含重复项的数字,返回该组数字的所有排列。结果以字典序升序排列。
数据范围:
,数组中的值满足
要求:空间复杂度
,时间复杂度
示例1
输入
[1,1,2]
输出
[[1,1,2],[1,2,1],[2,1,1]]
示例2
输入
[0,1]
输出
[[0,1],[1,0]]
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(1183)
分享
提交结果有问题?
214个回答
159篇题解
开通博客
LaN666
发表于 2020-11-22 16:12:37
精华题解
题目思路:这道题目跟没有重复项数字的所有排列 的做法其实是类似的,只不过区别在于有了重复的数字,如果不加以处理,还是按照原来的方法去做的话,那么就可能会出现重复的结果。 例如:[1,1,2]要是利用原先的做***算出两个[1,1,2],虽然是第一个1和第二个1,但是结果都是112。 所以要避免上
展开全文
牛客题解官
发表于 2022-04-22 12:29:26
精华题解
题目主要信息: 给定一组可能有重复数字的数组,输出该数组的全部排列 输出结果按照字典序升序排列 举一反三: 学习完本题的思路你可以解决如下题目: BM55. 没有重复项数字的全排列 BM58. 字符串的排列 BM60. 括号生成 递归+回溯(推荐使用) 知识点:递归与回溯 递归是一个过程或函数在
展开全文
蒙牛麦片
发表于 2021-07-16 22:22:27
精华题解
NC42 有重复项数字的所有排列 题意分析: 生成所给数字的所有排列。 这一题与JZ27字符串的排列基本一样将字符换成了数字 题解一(暴力回溯): 回想一下高中所学的排列组合知识:有3个红球,2个白球,1个黑球,请问有多少中排列方式。 我们的计算方式是:一个有6个位置,先选择3个位置放红球,再从剩下
展开全文
华科不平凡
发表于 2020-09-01 11:22:55
三种方法: 回溯——基于辅助数组 回溯——基于交换 基于库函数next_permutation 方法一:基于辅助数组 // // Created by jt on 2020/9/1. // #include <vector> #include <algorithm> us
展开全文
牛客791761168号
发表于 2022-03-31 20:25:20
使用自带的全排列函数,去重后使用sorted进行字典序排序 from itertools import permutations class Solution: def permuteUnique(self , num: List[int]) -> List[List[int]]:
展开全文
其治帅
发表于 2021-09-17 08:56:35
例: [1, 1, 2, 3]步骤:[1] + permuteUnique([1, 2, 3])中的每一个item[1]重复了,直接跳过[2] + permuteUnique([1, 1, 3])中的每一个item[3] + permuteUnique([1, 1, 2])中的每一个item 基本思
展开全文
摸鱼学大师
发表于 2022-02-16 20:14:59
题目主要信息: 给定一组可能有重复数字的数组,输出该数组的全部排列 输出结果按照字典序升序排列 具体思路: 这道题类似没有重复项数字的全排列,但是因为交换位置可能会出现重复交换的情况,出现的结果需要去重,因此不便于使用交换位置的方法,我们就使用临时变量去组装一个排列的情况:每当我们选取一个数组元
展开全文
牛客281174060号
发表于 2022-04-03 11:55:12
这个链接中是解决没有重复项数字的全排列的思路。此时我的总体递归思想是,取出第一个数字,递归得到剩下list的全排列,然后把第一个数字插入到结果的每一个位置。这样一种递归思想确实能得到全排列,但是当有重复数字时,很难将结果按照字典顺序返回。因为这种递归思想中对于重复数字的解决办法是得到递归结果,然后把
展开全文
菜鸡孙连城
发表于 2022-03-23 21:51:34
用一个临时数组path存储排列的情况,用一个数组used表示数组中每个元素的访问情况 终止条件:临时数组中选取了n个元素,将其加入到结果中 本级任务:选择一个元素push到临时数组。已经加入的元素不能再加入(通过used数组帮助)。为了去除重复元素的影响,如果当前元素num[i]与num[i
展开全文
2ez4me
发表于 2022-03-24 19:53:57
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> permuteUnique(int[] num) { if (num == null |
展开全文
闫良玉
发表于 2023-05-05 09:29:53
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> permuteUnique(int[] num) { ArrayList<Arra
展开全文
漫漫云天自翱翔
发表于 2021-08-09 15:29:30
有重复项数字的所有排列题解一:搜索回溯 题解思路: 该题与“没有重复项数字的所有排列“思路一样,只是多了约束条件。 约束条件: 1.一个数字不能重复地被选择。 2.不能产生重复地排列。 所以排列中地同一个位置不能出现相同的。图示: 剪枝:使用一个vis数组标记使用过的数字,如果使用过了就回溯
展开全文
wwip
发表于 2024-04-03 17:56:02
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ function permuteUnique(num) { // write code her
展开全文
问题信息
递归
来自:
中国电信2025春招笔...
难度:
214条回答
1183收藏
31502浏览
热门推荐
通过挑战的用户
查看代码
牛客48845...
2022-11-15 14:45:08
牛客97932...
2022-10-22 14:49:11
牛客34512...
2022-10-13 22:13:58
叉勾
2022-09-23 14:30:53
牛客11456...
2022-09-20 16:37:23
相关试题
执行完下列语句段后,i值为()
递归
评论
(16)
IP数据报分片的重组通常发生在()
网络基础
计算机网络
评论
(27)
来自
中国电信2025春招笔试...
①如果精子和卵细胞也像体细胞那样,...
语句表达
评论
(0)
来自
中国电信2025春招笔试...
测试ATM取款功能,已知取款数只能...
软件测试
评论
(0)
LoRA(Low-Rank Ada...
大模型开发
评论
(1)
有重复项数字的全排列
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型ArrayList
> */ public ArrayList
> permuteUnique (int[] num) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型vector * @return int整型vector
> */ vector
> permuteUnique(vector
& num) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num int整型一维数组 # @return int整型二维数组 # class Solution: def permuteUnique(self , num ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ public List
> permuteUnique (List
num) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ function permuteUnique( num ) { // write code here } module.exports = { permuteUnique : permuteUnique };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num int整型一维数组 # @return int整型二维数组 # class Solution: def permuteUnique(self , num: List[int]) -> List[List[int]]: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ func permuteUnique( num []int ) [][]int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @param numLen int num数组长度 * @return int整型二维数组 * @return int* returnSize 返回数组行数 * @return int** returnColumnSizes 返回数组列数 */ int** permuteUnique(int* num, int numLen, int* returnSize, int** returnColumnSizes ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num int整型一维数组 # @return int整型二维数组 # class Solution def permuteUnique(num) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ def permuteUnique(num: Array[Int]): Array[Array[Int]] = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ fun permuteUnique(num: IntArray): Array
{ // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ public int[][] permuteUnique (int[] num) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ export function permuteUnique(num: number[]): number[][] { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ func permuteUnique ( _ num: [Int]) -> [[Int]] { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型二维数组 */ pub fn permuteUnique(&self, num: Vec
) -> Vec
> { // write code here } }
[1,1,2]
[[1,1,2],[1,2,1],[2,1,1]]
[0,1]
[[0,1],[1,0]]