猿辅导笔试8.22,

import java.util.*;

public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Map<Integer, Integer> m = new HashMap<>();
for (int i = 1; i <= n; i++) {
m.put(i, sc.nextInt());
}
List<Integer> result = new ArrayList<>();
Set<Integer> visited = new HashSet<>();
int level = 0;
while(Math.pow(2, level)<=n){
result.add((int) Math.pow(2, level));
visited.add((int) Math.pow(2, level));
level++;
}
level-=1;
while (level>0){
int start = (int) Math.pow(2, level);
int end = (int) Math.pow(2, level+1)-1;
for (int i = start; i <= end && i<=n; i++) {
if (i == end){
result.add(i);
visited.add(i);
continue;
}
if (!visited.contains(i) && !visited.contains(2*i) && !visited.contains(2*i+1)){
result.add(i);
visited.add(i);
}
}
level--;
}
List<Integer> realResult = new ArrayList<>();
for (int index:result){
realResult.add(m.get(index));
}
for (int i = 0; i < realResult.size(); i++) {
System.out.print(realResult.get(i));
if (i!=realResult.size()-1){
System.out.print(" ");
}
}
}

}

第一题
本地测试没问题,提交上去一直报ac 0%,啥子问题,有点郁闷
#猿辅导##笔试题型#
全部评论
你怎么还在做笔试呀
点赞 回复 分享
发布于 2020-08-27 10:35
 int x = 0;         if ((N-1)%2 == 1) {             x = (N-2)/2;         }else {             x = (N-3)/2;         }         for (int i = x+1; i <= temp ; i++) {             arrayList.add(arr[i]);         }         while (temp != 2) {             temp = (temp-2)/2;             arrayList.add(arr[temp]);         }         for (int i = 0; i < arrayList.size(); i++) {             System.out.print(arrayList.get(i) + " ");         }     } }
点赞 回复 分享
发布于 2020-08-22 20:58
第一题AC,评论有字数限制,我分两条发 import java.util.ArrayList; import java.util.Scanner; public class YuanFuDao01 {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int N = scanner.nextInt();         if (N <= 0) {             return;         }         int []arr = new int[N];         for (int i = 0; i < N; i++) {             arr[i] = scanner.nextInt();         }         int index = 0;         ArrayList<Integer> arrayList = new ArrayList<>();         arrayList.add(arr[index]);         while (index*2+1 <= N-1) {             index = index*2+1;             arrayList.add(arr[index]);         }         int temp = index-1;         while (index < N-1) {             index++;             arrayList.add(arr[index]);         }
点赞 回复 分享
发布于 2020-08-22 20:58
我第一次没考虑倒数第二层的叶子,考虑后,就通过了
点赞 回复 分享
发布于 2020-08-22 20:41
有老哥知道第二题是哪个原题么
点赞 回复 分享
发布于 2020-08-22 20:35
第一题一直0ac,调了半天过了0.45,难受
点赞 回复 分享
发布于 2020-08-22 20:34
最后换行符?
点赞 回复 分享
发布于 2020-08-22 20:34
仔细考虑完全二叉树的最后一层和倒数第二层,以及是否为满二叉树
点赞 回复 分享
发布于 2020-08-22 20:34
加一自闭
点赞 回复 分享
发布于 2020-08-22 20:33
第二题也是
点赞 回复 分享
发布于 2020-08-22 20:33
牛友们帮帮忙看看我代码有啥问题啊
点赞 回复 分享
发布于 2020-08-22 20:33
我也是这个情况,本地试了好几种用例都没有问题,提交就0%
点赞 回复 分享
发布于 2020-08-22 20:32
同问😓
点赞 回复 分享
发布于 2020-08-22 20:32

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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