美团秋招8/31笔试
总结:A了俩道,第三题没有头脑
第一题
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] s = input.split(" ");
int ans =0;
for(int i=0; i<s.length; i++){
if(s[i].length()>0){
if(s[i].charAt(0)>='A'&&s[i].charAt(0)<='Z'){
ans++;
}
}
}
System.out.println(ans);
}
}
第二题
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
int []a = new int[n];
for(int i = 0; i < n; i++){
a[i] = scanner.nextInt();
}
Arrays.sort(a);
int m = k/n;
for(int i =m;i<=k;i++){
int res = i*n;
for(int j=1;j<n;j++){
int v = a[j-1]+i-1;
if(a[j]<=v)
res = res-(Math.abs(a[j]-v)+1);
if(res<k){
break;
}
}
if(res>=k){
System.out.println(i);
return;
}
}
}
}
总结:俺很菜,俺还要继续学习
第一题
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] s = input.split(" ");
int ans =0;
for(int i=0; i<s.length; i++){
if(s[i].length()>0){
if(s[i].charAt(0)>='A'&&s[i].charAt(0)<='Z'){
ans++;
}
}
}
System.out.println(ans);
}
}
第二题
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
int []a = new int[n];
for(int i = 0; i < n; i++){
a[i] = scanner.nextInt();
}
Arrays.sort(a);
int m = k/n;
for(int i =m;i<=k;i++){
int res = i*n;
for(int j=1;j<n;j++){
int v = a[j-1]+i-1;
if(a[j]<=v)
res = res-(Math.abs(a[j]-v)+1);
if(res<k){
break;
}
}
if(res>=k){
System.out.println(i);
return;
}
}
}
}
总结:俺很菜,俺还要继续学习
全部评论
还要看时间复杂度的吗 我感觉都是纯模拟题型 前两天根本没优化就 ac 了 最后一题我感觉就是个稍微复杂的模拟 可惜时间不够 我代码写的着急都是屎山
第一题一样,少了个判断长度大于0,为什么通过率为9%

第二题,我是一步一步优化的,刚开始的时候,是完全没有头脑的,写了一个牛头不对马嘴的代码,然后感觉可以用滑动窗格,然后暴力用了三个for,超时,对了70%,发现时间复杂度可能是nLogN,然后进行优化代码,然后找到了这个的结果,听说可以用二分写,我二分学的比较烂
相关推荐
点赞 评论 收藏
分享
我的offer呢😡:这不才9月吗,26到明年毕业前能一直找啊 点赞 评论 收藏
分享
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的
const flattern = (obj) => {
const res = {};
const dfs = (curr, path) => {
if(typeof curr === 'object' && curr !== null) {
const isArray = Array.isArray(curr);
for(let key in curr) {
const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key;
dfs(curr[key], newPath);
}
} else {
res[path] = curr
}
}
dfs(obj);
return res;
}
查看3道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享

