菜鸟笔试
鼠鼠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
大佬最后一题怎么优化的呀?我一直超时
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享