当前位置: 首页 > 面试经验 >

百度测开暑期0410笔试交流

优质
小牛编辑
137浏览
2023-04-11

百度测开暑期0410笔试交流

百度用的赛码网考,需要开摄像头,笔试包括30道选择题60分,两道编程题40分

题目一:优惠券这道题笔试时a了27%,笔试后发牛客上有佬给做了指正,我觉得应该是可以的了

题目描述:在L-R闭区间内,取一个整数x,优惠计算方式=x *(x的各位数字之和),问最大的优惠是多少?

例:[3,6],取3时,优惠为3*3=9,取4时,优惠为4*4=16,...因此最大优惠为6*6=36

再比如[28,31],取29时最大,优惠为29*(2+9)= 319

边界:1 <= L <= R <= 1e5

Scanner cin = new Scanner(System.in);
int l = cin.nextInt();
int r = cin.nextInt();
int ge = 0;
int shi = 0;
int bai = 0;
int qian = 0;
int wan = 0;
long max = 1;
for(int i = l;i <= r;i++){
  wan = i / 10000 % 10;
  qian = i / 1000 % 10;
  bai = i / 100 % 10;
  shi = i / 10 % 10;
  ge = i % 10;
  max = Math.max(max,i * (ge + shi + bai + qian + wan))
}
System.out.print(max);

题目二:a了82%,暴力解法,欢迎讨论。

题目描述:给了一个数组的长度n,和一个整数k,求这个数组有多少对差值为k?

例1

输入:5 5

5 6 7 8 9 10

输出1,只有5、10一对

例2

输入:5 5

5 5 5 10 10

输出6 有6对

Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int k = cin.nextInt();
int count = 0;
ArrayList<Integer> arr = new ArrayList();
while(cin.hasNextLine())
    {
      String line = cin.nextLine();
      if (line.length() > 0) {
        String[] arrLine = line.split(" ");
        for (int i=0; i<arrLine.length; i++) {
          arr.add(Integer.parseInt(arrLine[i]));
        }
      }
    }
for(int i = 0;i < n;i++){
  for(int j = i + 1;j < n;j++){
	if(Math.abs(arr.get(i) - arr.get(j)) == k){
	  count++;
	}
  }
}

System.out.print(count);

#软件开发2023笔面经#
 类似资料: