网易Android第二题,插入并反转n次数组那道题,内存溢出

我就new了一个int数组读取数据就溢出了,怎么优化啊
代码贴出来:
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int n = in.nextInt();
            int[] b = new int[n];
            int i = n >> 1;
            int j = i+1;
            b[i--] = in.nextInt();
            while (true) {
                if (i < 0) break;
                b[i--] = in.nextInt();
                if (j >= n) break;
                b[j++] = in.nextInt();
            }
            if (n%2==0){
                for (int k = 0; k < n - 1; k++) {
                    System.out.print(b[k] + " ");
                }
                System.out.println(b[n - 1]);
                continue;
            }else{
                for (int k = n-1; k >0; k--) {
                    System.out.print(b[k] + " ");
                }
                System.out.println(b[0]);
                continue;
            }
        }
    }
}

全部评论
用C语言过,用Java GG
点赞 回复 分享
发布于 2017-08-12 17:23
兄台,你第一题看明白了吗?我连第一题都没看懂
点赞 回复 分享
发布于 2017-08-12 17:30
第一次用两个数组 内存超了,改成一个数组还是内存超了
点赞 回复 分享
发布于 2017-08-12 17:33
直接输出答案就行了,不用new数组,前提是如果你说的是将ai放到b的最后,然后翻转b,重复此步骤的话?
点赞 回复 分享
发布于 2017-08-12 17:36
n次操作数列那题,可以由n直接求得。 第i个数n次操作的位置取决于i和n的奇偶性 i和n奇偶性不同时,位置为(n+i)/2 i和n奇偶性相同时,位置为(n-i)/2 i<=n&&i>=1,位置从0开始。
点赞 回复 分享
发布于 2017-08-12 17:38
C++,用deque,先按原序列从小到大方向依次push_front(),再把同样数量的尾巴pop掉,不得不说deque的push和pop真心好用。
点赞 回复 分享
发布于 2017-08-12 17:44
deque不就行了
点赞 回复 分享
发布于 2017-08-12 17:46
python GG
点赞 回复 分享
发布于 2017-08-12 18:42

相关推荐

牛客765689665号:没有实习是硬伤,央国企看学历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务