阿里4.9笔试

想问一下各位大佬,第二题为什么我的代码只可以通过80%的case呀,是哪里没有考虑进去呀?
我太菜了图片说明

import java.util.*;

// 输入:
// 5 2
// 1 3
// 2 4
// 预期结果:3 4 1 2 5

public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int k = scanner.nextInt();
        scanner.nextLine();
//        System.out.println(n);
//        System.out.println(k);
        int[] arr = new int[n];
        for(int i=0;i<n;i++){
            arr[i] = i+1;
        }
        for(int i=0;i<k;i++){
            int left = scanner.nextInt();
            int right = scanner.nextInt();
            scanner.nextLine();
            convertArray(arr,left,right);
        }
        for(int i=0;i<n;i++){
            System.out.print(arr[i]+" ");
        }
    }
    public static void convertArray(int[] arr,int left,int right){
        for(int i=0;i<(right-left+1)/2;i++){
            int temp = arr[left+i-1];
            arr[left+i-1] = arr[right-i-1];
            arr[right-i-1] = temp;
        }
    }
}
#笔试题目##阿里巴巴#
全部评论
我也是80多,是超时了
点赞 回复
分享
发布于 2021-04-10 20:41
你是不是用的数组的局部逆序?这样涉及到元素的拷贝,时间复杂度太高了
点赞 回复
分享
发布于 2021-04-11 10:11
小红书
校招火热招聘中
官网直投
楼主,笔试题目哪儿看啊
点赞 回复
分享
发布于 2021-04-14 23:18

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务