网易笔试 3.5

求大佬看看第二题为啥一直90
第一题 100
public static void main(String[] args) {
    Scanner sc=new Scanner(System.in); int n=sc.nextInt();  int[] arr=new int[n];
    ArrayList<StringBuilder> lit=new ArrayList<>(); for (int i=0;i<n;i++){
        arr[i]=sc.nextInt();
    } for (int i=0;i<n;i++){  int geshu=arr[i]/9;  int num=arr[i]%9;
        StringBuilder sb=new StringBuilder();  if (geshu>=1){  if(num!=0){
                sb.append(String.valueOf(num));
               }  for(int j=0;j<geshu;j++){
                sb.append(String.valueOf(9));
               }
        }else {
            sb.append(String.valueOf(arr[i]));
        }
        lit.add(sb);
    } for (StringBuilder s : lit) {
        System.out.println(s);
    }
}
第二题 90
public static void main(String[] args) {
    Scanner sc=new Scanner(System.in); int t=sc.nextInt(); int[][] arr=new int[t][4]; for (int i=0;i<t;i++){  for (int j=0;j<4;j++){
            arr[i][j]=sc.nextInt();
        }
    } for (int i=0;i<t;i++){  int a=arr[i][0]; int b=arr[i][1]; int p=arr[i][2]; int q=arr[i][3]; int index=1;  while ((a+p)<b){
            p*=q;
            index++;
        }
        System.out.println(index);
    }
}
第三题100
public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);  int t=sc.nextInt();  int[] arr2=new int[t];  for (int i=0;i<t;i++){  int n=sc.nextInt();   int[]arr=new int[n];  int index=1;  int max=0; int sum=0;   for (int j=0;j<n;j++){
            arr[j]=sc.nextInt();  if(j==0){
                sum=arr[0];
            } if (j>0){ if (arr[j]>=sum){
                    index++;
                    sum+=arr[j];
             }else {
                    sum=arr[j];
                    max=max>index?max:index;
                    index=1;
             }
          }
      }
        arr2[i]=max;
    }  for (int i=0;i<t;i++){
        System.out.println(arr2[i]);
    }
}
第四题 60
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();
    } int sum=0; for (int i=0;i<n;i++){ for (int j=i+1;j<n;j++){ if (arr[i]>arr[j]){
                sum+=j-i;
            }
        }
    }
    System.out.println(sum);
}
#网易##笔试题目#
全部评论
第三题暴力也行?dp搞大半天
点赞 回复 分享
发布于 2019-09-21 17:10
好气,最后一道原来是,距离差,我还以为是数值差,怪不得我测试过了,提交0%。
点赞 回复 分享
发布于 2019-09-21 17:07
第二题是那个什么ABpq的吗,如果是的话就是数据类型改成long long int 就好了😂😂😂我第2、3一个90%一个30%,最后五分钟突发奇想两个都改成long long然后就都过了
点赞 回复 分享
发布于 2019-09-21 17:01
其实都是long的问题😂
点赞 回复 分享
发布于 2019-09-21 16:59
大佬,第三题题目的大意是啥啊。我只记得我没写出来,现在想捡起来学习一下。谢谢了
点赞 回复 分享
发布于 2022-03-06 23:44
第四题是归并  知道用啥  不知道咋做 同0.6
点赞 回复 分享
发布于 2019-09-21 17:23
第三题这样也可以? 1 3 9 12 24 这组数据这样输出3 正确应该是4吧 
点赞 回复 分享
发布于 2019-09-21 17:23
第一题我输出的是整数,没通过。在IDEA上运行了好多案例都可以😢😢😢
点赞 回复 分享
发布于 2019-09-21 17:10
第三题思路这么简单啊!!,我想到动态规划里面去了
点赞 回复 分享
发布于 2019-09-21 17:08
第二道,我这样写的,提示我过了。。。 public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         for (int i = 0; i < n; i++) {             int a = sc.nextInt();             int b = sc.nextInt();             int p = sc.nextInt();             int q = sc.nextInt();             int count = 1;             while (a+p < b) {                 int temp1 = a + p;                 int temp2 = a + p * q;                 if (temp1 > temp2) {                     a = a + p;                 } else {                     p = p * q;                 }                 count++;             }             System.out.println(count);         }     }
点赞 回复 分享
发布于 2019-09-21 17:08
我最开始也是90,要是告诉你了你怕是要捶胸顿足🤣
点赞 回复 分享
发布于 2019-09-21 17:04
第二题改成long 就过了  估计是测试用例里有超出题设的数据。。。。。。
点赞 回复 分享
发布于 2019-09-21 17:03
心累,同样的算法,python总是耗时更多,第四题只能ac 60%,最后是30,100,60,60
点赞 回复 分享
发布于 2019-09-21 17:02
我和你每题的分数都一模一样😂
点赞 回复 分享
发布于 2019-09-21 16:59
我也是 ,第二题咋回事啊
点赞 回复 分享
发布于 2019-09-21 16:58

相关推荐

VirtualBool:都去逗他了?
点赞 评论 收藏
分享
评论
2
9
分享

创作者周榜

更多
牛客网
牛客企业服务