一月底的面试,oa海投后等了小半个月被选中
选的java,一个半小时3个coding三个多选,其实时间还挺紧张
pdf原题
粘贴一下基层:
1. VM Pricing
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result {
/*
* Complete the 'interpolate' function below.
*
* The function is expected to return a STRING.
* The function accepts following parameters:
* 1. INTEGER n
* 2. INTEGER_ARRAY instances
* 3. FLOAT_ARRAY price
*/
public static String interpolate(int n, List<Integer> instances, List<Float> price) {
// Write your code here
if(price.size() == 1) {
System.out.print("oops");
return String.valueOf(price.get(0));
}
if(instances.contains(n) && price.get(instances.indexOf(n)) != 0 && price.get(instances.indexOf(n)) != -1) {
return String.valueOf(price.get(instances.indexOf(n)));
}
//Greatest number of instances is n
if(!instances.stream().anyMatch(i -> i > n)) {
return interpolateBtwnPoints(n,instances.get(instances.size()-2),instances.get(instances.size()-1),price.get(price.size()-2),price.get(price.size()-1));
}
//Least number of instances is n
if(!instances.stream().anyMatch(i -> i < n)) {
return interpolateBtwnPoints(n,instances.get(1),instances.get(0),price.get(1),price.get(0));
}
for(int i = 0;i < instances.size();i++) {
if(n > instances.get(i)) {
return interpolateBtwnPoints(n,instances.get(i-1),instances.get(i+1),price.get(i-1),price.get(i+1));
}
}
return "None";
}
private static String interpolateBtwnPoints(int x,int x0, int x1,float y0, float y1) {
return String.valueOf(y0 + (y1-y0)*((x-x0)/(x1-x0)));
}
}
public class Solution {
|