字节跳动算法题面经

输入 n,给出 1~n 的所有排列,不要求输出有序
即 输入 3,输出 1,2,3,12,13,23,123.
有没有大佬java实现一下发个答案?
#字节跳动##笔试题目#
全部评论
有要一起刷题的小伙伴么,每天一个算法题,坚持30天你就会看到不一样的自己。
1 回复 分享
发布于 2021-03-07 17:14
回溯算法
1 回复 分享
发布于 2021-03-07 16:49
点赞 回复 分享
发布于 2021-03-11 22:05
这是子集吧,leetcode有原题。给你个思路吧 {1}的子集是{}和 {1},{1.2}的子集是{} {1} {2} {1.2}其实就是1的子集每加入一个二加上1原来的子集。找下规律就能出来了😂
点赞 回复 分享
发布于 2021-03-11 05:05
阿里数据中台招java研发实习,有兴趣同学加v:13031166600  也可发送简历至xinan.cj@alibaba-inc.com
点赞 回复 分享
发布于 2021-03-10 17:16
位运算 子集枚举
点赞 回复 分享
发布于 2021-03-08 07:37
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
LeetCode 78
点赞 回复 分享
发布于 2021-03-07 15:54
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
位运算?
点赞 回复 分享
发布于 2021-03-07 13:20
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2021-03-07 11:29

相关推荐

1.&nbsp;有向二叉树最好和最快的时间复杂度是多少?怎么计算出来的?2.&nbsp;B+树有什么特性3.&nbsp;什么是快排,什么是排序的稳定性4.&nbsp;Java的泛型是什么?与泛型那个相关的&nbsp;&lt;&nbsp;?&nbsp;extend&nbsp;T&gt;&nbsp;和&nbsp;&lt;&nbsp;?&nbsp;super&nbsp;T&gt;&nbsp;关键字有什么作用?有什么区别?5.&nbsp;List&lt;BigDecimal&gt;&nbsp;和&nbsp;List&lt;&nbsp;?&nbsp;extend&nbsp;Number&gt;&nbsp;。&nbsp;&nbsp;存入数据时有什么区别?他们的一些&nbsp;API&nbsp;操作方法&nbsp;有什么差异?6.&nbsp;说说Lambda表达式?7.&nbsp;说说stream流常见的API?&nbsp;stream流collect(Collectors.toMap()&nbsp;),&nbsp;其中这个toMap方法两个参数和三个参数的区别是什么?(三个参数的第三个参数设置冲突策略,两个参数发生冲突时会抛出异常)8.&nbsp;说说方法引用?什么场景下会用到方法引用?9.&nbsp;集合遍历是否可以一边遍历一边删除?&nbsp;该怎么正确删除?10.&nbsp;for循环遍历集合的过程中删除集合会发生fail-fast异常。&nbsp;如果我就想在for循环遍历的过程中中删除集合的元素,该怎么做才能绕过去?&nbsp;(倒叙遍历集合,因为删除元素后,它只会影响后面(即已遍历过)元素的索引,而不会影响前面(即将要遍历)元素的索引)11.&nbsp;迭代器你那个&nbsp;iterable&nbsp;你遍历完了之后,你该如何再尝试遍历呢?12.&nbsp;有了解过那个迭代器的设计思想吗?&nbsp;了解快速失败的底层原理吗?13.&nbsp;线程池的参数14.&nbsp;JDK&nbsp;提供了一些默认的线程池,这些线程池的优缺点是什么呢?15.&nbsp;说说常见索引失效的场景16.&nbsp;联合索引(a,&nbsp;b,&nbsp;c),&nbsp;条件where&nbsp;a&nbsp;=&nbsp;1&nbsp;and&nbsp;b&nbsp;&gt;=&nbsp;2&nbsp;and&nbsp;c=3.&nbsp;&nbsp;会用到什么索引?&nbsp;&nbsp;(即范围查询(单列索引/联合索引)会导致索引失效吗?)17.&nbsp;EXPLAIN&nbsp;extra字段的using&nbsp;where代表什么?18.&nbsp;当使用EXPLAIN分析SQL语句时,其输出结果中出现多条记录,这些记录中的id列有时相同、有时不同,这具体代表了什么?如何通过id值来判断SQL语句中各部分的执行顺序?19.&nbsp;SQL中不同JOIN&nbsp;连接的算法?20.&nbsp;一般执行&nbsp;DDL&nbsp;语句之后,会加什么锁?&nbsp;此时是否可以执行一些DML语句?&nbsp;&nbsp;MySQL&nbsp;在&nbsp;5.6后加了什么机制从而允许此时DML可以执行并发写操作?21.&nbsp;git&nbsp;的header指针代表什么?22.&nbsp;git的reset的四种状态?&nbsp;reset和revert的区别?23.&nbsp;git中分支和tag的区别?24.&nbsp;linux命令:&nbsp;要查一个日志,这有很文件很大,差不多有&nbsp;10G&nbsp;以上,那么的话你要查一个关键字上下前&nbsp;50&nbsp;行是该怎么查?
查看24道真题和解析
点赞 评论 收藏
分享
评论
3
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务