字节跳动算法题面经

输入 n,给出 1~n 的所有排列,不要求输出有序
即 输入 3,输出 1,2,3,12,13,23,123.
有没有大佬java实现一下发个答案?
#字节跳动##笔试题目#
全部评论
回溯算法
1 回复 分享
发布于 2021-03-07 16:49
有要一起刷题的小伙伴么,每天一个算法题,坚持30天你就会看到不一样的自己。
1 回复 分享
发布于 2021-03-07 17:14
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2021-03-07 11:29
位运算?
点赞 回复 分享
发布于 2021-03-07 13:20
import java.util.ArrayList; import java.util.List; public class Solution {     public List<List<Integer>> getArrange(int n){         boolean[] vis = new boolean[n+1];         List<List<Integer>> rsl = new ArrayList<>();         dfs(new ArrayList<>(), rsl, vis, 1, n, 1);         return rsl;     }     public void dfs(List<Integer> rs, List<List<Integer>> rsl, boolean[] vis, int i, int n, int depth){         if(depth == n + 1){             if(rs.size()>=1)                 rsl.add(new ArrayList<>(rs));             return;         }        for(int j=i;j<=n;j++){            if(!vis[j]){                vis[j] = true;                rs.add(j);                dfs(rs, rsl, vis, j+1, n, depth + 1);                vis[j] = false;                rs.remove(rs.size()-1);                dfs(rs, rsl, vis, j+1, n , depth+1);            }        }     }     public static void main(String[] args) {         Solution s = new Solution();         System.out.println(s.getArrange(3));     } }
点赞 回复 分享
发布于 2021-03-07 14:08
LeetCode 78
点赞 回复 分享
发布于 2021-03-07 15:54
class Solution:     def subsets(self, nums: List[int]) -> List[List[int]]:         n = len(nums)         def dfs(tmp,begin):             res.append(tmp[:])             for i in range(begin,n):                               dfs(tmp+[nums[i]],i+1)         res = []         dfs([],0)         return res
点赞 回复 分享
发布于 2021-03-07 16:55
位运算 子集枚举
点赞 回复 分享
发布于 2021-03-08 07:37
阿里数据中台招java研发实习,有兴趣同学加v:13031166600  也可发送简历至xinan.cj@alibaba-inc.com
点赞 回复 分享
发布于 2021-03-10 17:16
这是子集吧,leetcode有原题。给你个思路吧 {1}的子集是{}和 {1},{1.2}的子集是{} {1} {2} {1.2}其实就是1的子集每加入一个二加上1原来的子集。找下规律就能出来了😂
点赞 回复 分享
发布于 2021-03-11 05:05
点赞 回复 分享
发布于 2021-03-11 22:05

相关推荐

不愿透露姓名的神秘牛友
11-08 16:12
点赞 评论 收藏
分享
评论
3
12
分享
牛客网
牛客企业服务