Sopra Steria 面试经历
今天,我被要求在 Sopra Steria 面试。约 100 人在面试过程中在场。第一轮作为技术测试,包括来自hackersearth网站的2个复杂问题。虽然我在第一轮失败了。我试图解决一个问题,我解决了 80%,但无法进入第二轮。下面给出了我尝试的问题以及解决方案,以便您可以发布并且任何人都可以获得帮助。
Q. 1 您必须使用以下 sysntax 从输入设备获取输入:
第 1 行:T 要检查的测试用例数。
第 2 行:数组计数。
第 3 行:数组的元素数量。
第 4 行:要找到的第 K 个最大元素。如果没有找到返回-1。
第 2、3 和 4 行将相应地重复我们在第 1 行中输入的内容。
规则:我们需要找到蚂蚁 2 数字的差异,如果它不存在,那么我们应该将它添加到给定的数组中。所以我们最后会在数组中出现所有数字差异。
例如:输入:
1
5
1 3 5 6 7
2
1
1
2
输入:第 1 行是:我们要通过 2 个测试用例。
第 2 行:第一个数组的数组大小。
第 3 行:由空格分隔的数组元素
第 4 行:需要找出第二大元素。
第 5 行:测试用例 2 的第二个数组的数组大小。
第 6 行:数组元素
第 7 行:要找到的第二大元素
输出 :
6
-1
解决方案:
package soptasteria;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws IOException
{
Scanner sc = new Scanner(System.in);
int testCasesCount = sc.nextInt();
int[] result = new int[testCasesCount];
for (int i = 0; i < testCasesCount; i++) {
int arraySize = sc.nextInt();
// System.err.println("Enter arr element after arr size");
// System.err.println("Array Entered : "+sc.nextLine());
sc.nextLine();
String[] strArr = sc.nextLine().split(" ");
int[] array = makeArrayOfInteger(strArr);
// System.out.println("Printing integer array");
int kth = sc.nextInt();
// System.out.println("Array Entered : ");
printArray(array, arraySize);
result[i] = goForBusiness(array, arraySize, kth);
// System.out.println("Result : "+result[i]);
}
System.out.println("Output : ");
for (int i = 0; i < testCasesCount; i++) {
System.out.println(result[i]);
}
}
private static int goForBusiness(int arr[], int len, int kthLargest)
{
int lastIndex = len;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
int d = Math.abs(arr[i] - arr[j]);
// System.out.println("Checked "+i+"th and "+j+"th element with differnece : "+d);
if (!searchInArray(arr, lastIndex, d)) {
arr[lastIndex++] = d;
}
}
}
Arrays.sort(arr, 0, lastIndex);
// System.out.print("After Sort : ");
// printArray(arr, lastIndex);
if (kthLargest > lastIndex)
return -1;
return arr[lastIndex - kthLargest];
}
private static int[] makeArrayOfInteger(String[] str)
{
int[] arr = new int[str.length * 4];
for (int i = 0; i < str.length; i++)
arr[i] = Integer.parseInt(str[i]);
return arr;
}
private static boolean searchInArray(int arr[], int len, int ele)
{
for (int i = 0; i < len; i++)
if (arr[i] == ele)
return true;
return false;
}
private static void printArray(int arr[], int len)
{
for (int i = 0; i < len; i++)
System.out.print(" " + arr[i]);
System.out.println("");
}
}