今晚同学在做百度的在线笔试,我帮了其中一个比较简单的题目,可是通过率只有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, m≤5*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%。可能是哪里没有考虑全面,还望大神指教。