专栏首页伪君子的梦呓腾讯暑期实习在线笔试题--魔法序列

腾讯暑期实习在线笔试题--魔法序列

0 前言

前段时间投实习,腾讯的暑期实习进了在线笔试。结果只做出了一道题(1/5),非常丢人。

没办法,只好把没做出的题目好好研究一下了。

1 题目--魔法序列

小 Q 拥有一个只存储了整数的序列叫魔法序列。一开始序列为空,小 Q 会执行以下两种操作:

add(x): 表示往序列中添加一个值为x的整数

get(y): 表示在第 y 次 add 操作后,取出序列中第 k 小的数,并将其输出,其中 k 初始时候为 1,每执行一次 get 操作之后,k 的值会 +1.

输入描述:

第一行两个整数 n 和 m(0<=n,m<=30000,分别表示 add 和 get 的操作次数 第二行 n 个空格间隔的整数,表示每次 add 操作往数列中添加的数字 第三行m个空格间隔的整数 Yi(1<=Yi<=n) 其中第 i 个数表示在执行了 Yi 次 add 操作后,执行一次 get 操作.

输出描述:

m 行,每行一个整数,表示对应 get 操作输出的值

输入:

7 4 3 1 -4 2 8 -1000 2 1 2 6 6

输出:

3 3 1 2

2 Java 代码

先是导入需要的库,然后获取需要的值。

根据第三行的数来创建数组,创建好之后一一赋值到新数组,然后排序,输出对应的值,然后 k 自增。

import java.util.Scanner;
import static java.util.Arrays.sort;  //用来排序

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  //获取整数 n
        int m = sc.nextInt();  //获取整数 m
        int[] add = new int[n];  //定义第二行的数组
        int[] b = new int[m];  //定义第三行的数组
        int k = 1;

        for (int i = 0; i < n; i++) {
            add[i] = sc.nextInt();  //获取第二行的数
        }
        for (int j = 0; j < m; j++) {
            b[j] = sc.nextInt();  //获取第三行的数
        }

        for(int j = 0; j < b.length; j++) {
            int[] newArray = new int[b[j]];  //根据 b[j] 的值来确定新数组的长度
            for (int x=0;x<newArray.length;x++){
                newArray[x] = add[x];  //根据新数组的长度把第二行的数一一赋给 newArray
            }
                sort(newArray);  //从小到大排序
                System.out.println(newArray[(k-1)]);  //输出对应的值
                k+=1;  //get 操作完成,k+1
        }
    }
}

我是考完之后让大佬检查我的代码,所以代码不一定能够完全通过所有的测试样例,但是我觉得都可以通过?

3 说明

题图:Photo by Ion Şipilov on Unsplash

本文分享自微信公众号 - 伪君子的梦呓(beiyue_lbj),作者:weijunzi

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 题解 ~ 简单的a+b ~ C++ 做法

    伪君子
  • 题解 ~ 输出所有的水仙花数

    打印所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153 是一个水仙花数,因为

    伪君子
  • 题解~按照特定的格式输出~C++做法

    一共三行,第一行:位数 第二行: 用空格分开的每个数字,注意最后一个数字后没有空格 第三行: 按逆序输出这个数

    伪君子
  • LintCode-55.比较字符串

    比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是大写字母

    悠扬前奏
  • LOJ#505. 「LibreOJ β Round」ZQC 的游戏(最大流)

    attack
  • @@IDENTITY与SCOPE_IDENTITY() 及IDENT_CURRENT 的区别

    本文转载:http://www.cnblogs.com/lovemyth/archive/2007/03/14/674584.html

    跟着阿笨一起玩NET
  • POJ 1741 Tree(树的点分治,入门题)

    Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21357 ...

    Angel_Kitty
  • 安装saltstack

    随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分。面对越来越复杂的业务,面对越来越多样化的用户需求,不断扩展的IT应用需要越来越合理的模式来...

    端碗吹水
  • ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

    前文索引: ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证 ASP.NET Core教程【一】关于Razor Page...

    liulun
  • 为WordPress开启Nginx缩略图功能,七牛从此陌路

    张戈博客曾分享过不少关于云存储的一些经验技巧,对七牛感兴趣或者遇到相关问题的朋友可以看一看以前的相关文章: 七牛&又拍云 CDN 云存储节省 GET 次数的小...

    张戈

扫码关注云+社区

领取腾讯云代金券