Uncle Johny
上存在练习问题www.codechef.com
作为冗长的文章,我提供了与此相关的链接。
https://www.codechef.com/problems/JOHNY/
我对此问题有两种解决方案(代码1和代码2)
代码1
class UncleJohny
{
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(newInputStreamReader(System.in));
PrintWriter pw = new PrintWriter(System.out);
int test_case = Integer.parseInt(br.readLine());
while(test_case-- > 0)
{
int n = Integer.parseInt(br.readLine());
int i = 0;
String a[] = br.readLine().split(" "); //Mind this line
int k = Integer.parseInt(br.readLine());
String temp = a[k - 1];
Arrays.sort(a);
pw.println(Arrays.binarySearch(a, temp) + 1);
}
pw.flush();
}
}
代码2
class UncleJohny
{
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(System.out);
int test_case = Integer.parseInt(br.readLine());
while(test_case-- > 0)
{
int n = Integer.parseInt(br.readLine());
int a[] = new int[n];
int i = 0;
for(String str: br.readLine().split(" "))
{
a[i++] = Integer.parseInt(str); //Mind this line
}
int k = Integer.parseInt(br.readLine());
int temp = a[k - 1];
Arrays.sort(a);
pw.println(Arrays.binarySearch(a, temp) + 1);
}
pw.flush();
}
}
上面代码中的基本任务是排序后在输入数组
temp
中找到a
的值的索引据我说,这两个代码的输出不会有任何区别。 (如果我做错了,请纠正我)
CodeChef正在接受
Code 2
,但对Code 1
回答错误我的查询到底是什么?
尽管相同,为什么
code 2
被接受而code 1
不被接受?为什么我需要将输入值存储在
int
数组中(如代码2所示),而不是将它们存储在String
数组中(如代码1所示),以便使答案得到接受? 最佳答案
整数的排序顺序与字符串的排序顺序不同。例如。 “ 1”