菜鸟笔试
鼠鼠0.66 0.13 1,太菜了

第三题代码:
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Set<Integer> result = new HashSet<>();
Set<Integer> prev = new HashSet<>();
for (int num : arr) {
Set<Integer> current = new HashSet<>();
current.add(num);
for (int s : prev) {
current.add(orValue | num);
}
result.addAll(current);
prev = current;
}
System.out.println(result.size());
}
}
比较朴素的解法
第三题代码:
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Set<Integer> result = new HashSet<>();
Set<Integer> prev = new HashSet<>();
for (int num : arr) {
Set<Integer> current = new HashSet<>();
current.add(num);
for (int s : prev) {
current.add(orValue | num);
}
result.addAll(current);
prev = current;
}
System.out.println(result.size());
}
}
比较朴素的解法
全部评论
第一题,用递归,cal(a, b) = 1 + (a/2, b/2), 直到a=b.
第二题,括号匹配,第一个操作没有意义,当成10010101数组处理,最后要么全1,要么全0,只需要考虑第二个操作,第二个操作是每次可以把相差偶数位的两个1转化为两个0(或者反过来),那么用栈保存1的下标,每次遇到1就看和栈顶的1下标是否相差偶数位,相差直接弹出栈顶,否则下标入栈,最后栈是空的意味着能全部配对成功。
求第三题题解
第三题咋做的呢大佬
1 0.13 0.1
第一题是因为要不断的二分去找对应的点,因为2的n次方不一定在区间内,第二题我一直在做,不知道为什么只有0.13,求牛友帮助
老哥六呀
有知道第二题怎么写的佬吗
求一下第三题题解
第二题只有0.16
0.9 0.13 0.1
大佬最后一题怎么优化的呀?我一直超时
相关推荐
程序员牛肉:我觉得是这样的,你现在有点病急乱投医了。你要问自己这样一个问题:
我找实习的目的是什么?为了挣钱还是增强个人实力?如果是为了挣钱那没得说,如果我是为了增强个人实习,那我异地去一个小厂实习真的有收益吗?这个收益是否大过我参加学校的项目或者自学?我记得你们杭电有那种实验室专门负责运维学校的项目的。
找实习只是一个手段而已,不要把他变成目的。不要病急乱投医。
点赞 评论 收藏
分享
2025-11-19 17:50
西北政法大学 新媒体运营 点赞 评论 收藏
分享
