2016年百度笔试之乘法表

今晚同学在做百度的在线笔试,我帮了其中一个比较简单的题目,可是通过率只有50%,这让我很不解,具体如下:

1、 题目

乘法表
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Problem Description:
度度熊和爷爷在玩一个乘法表游戏。乘法表的第i行第j列位置的元素为i*j,并且乘法表下标编号从1开始,比如2 × 3乘法表为
1 2 3
2 4 6
爷爷十分聪明,对于n*m的乘法表,只要度度熊给出一个数k,爷爷就能立刻告诉度度熊乘法表中元素按照不减顺序排列之后,第k个元素是多少。你能重复这个游戏吗?
输入
输入数据是三个整数:n, m, k (1≤n, m5*105, 1≤k≤nm)。
输出
输出n*m乘法表按照不减顺序排列的第k个数。

样例输入
2 3 4
样例输出
3

2、 我的实现

package com.liu.opq;

import java.util.Arrays;
import java.util.Scanner;

public class Main2
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext())
        {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            int k = scanner.nextInt();
            scanner.nextLine();
            System.out.println(tellK(n, m, k));     
        }
        scanner.close();
    }

    public static int tellK(int n, int m, int k)
    {

        int[] input = new int[m*n+1];

        int index = 1;

        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=m; j++)
            {
                input[index++] = i*j;                   
            }
        }       

        Arrays.sort(input);     
        return input[k];
    }

}

3、结语
这本该是个简单的题目,但是不知道为什么通过率之后50%。可能是哪里没有考虑全面,还望大神指教。

你可能感兴趣的:(百度,乘法表,在线笔试)