总结---2025美团---4.26笔试技术岗

一、行李

  • 思路1:直接用哈希表统计每个字母出现的次数,取行李出现的次数与限制次数的最小值。
  • 思路2:涉及到字母的哈希操作可以采用一个整数数组(长度为26)。
  • 代码:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        // 输入
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = in.nextInt();
        String s = in.next();
        
        // 定义字符出现次数的数组并计算字符串出现次数
        int[] cnt = new int[26];
        for (char c: s.toCharArray()) {
            cnt[c - 'a']++;
        }
        
        int ans = 0;
        for (int num: cnt) {
            ans += Math.min(num, k);
        }
        System.out.println(ans);
    }
}

二、退化

  • 技巧:
  • x & (-x) 实际上获取的是数字二进制中最右侧的1。
  • 多写几个例子发现,Cost值等于该数字最高有效位对应的全1数(例如,数字5的二进制最高位是4,对应的全1数为7)
  • 思路:区间划分(在区间[2^k, 2^{k+1}-1]内,Cost值相同为2^{k+1}-1),贡献计算(区间长度*Cost值)、累计求和
  • 代码:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        long t = in.nextInt();
        for (long i  = 0; i < t; i++) {
            long n = in.nextInt();
            long res = calSum(n);
            System.out.print(res + " ");
        }
    }
    
    private static long calSum(long n) {
        long total = 0;
        long k = 0;
        while ((1 << k) <= n) {
            long s = 1 << k;
            long e = Math.min((1 << (k + 1)) - 1, n);
            long cnt = e - s + 1;
            total += cnt * ((1 << (k + 1)) - 1);
            k++;
        }
        return total;
    }
}

暑期笔试总结 文章被收录于专栏

记录一些公司的暑期笔试感悟

全部评论

相关推荐

05-24 09:55
已编辑
上海大学 Java
更新:一面过了,但通勤有点远,接了另一个小厂的offer鼠鼠二本,现在大二,项目是苍穹和仿Git,问得还是挺简单的,不过还是有几个没答好公司规模算是中小厂,100-499那个档的,做的业务应该是快消的产业链、信息化这一块一面是线上,如果通过,二面是要线下去的。公司里学校挺远的,地铁要一个半小时,各位牛爷爷给点意见1.&nbsp;自我介绍2.&nbsp;从哪里学的CS61B(自我介绍中提到的)3.&nbsp;学校里学过的专业课中哪门课印象最深刻/收获最多4.&nbsp;第一个项目就是java程序设计的课程项目吗5.&nbsp;学习java多久了6.&nbsp;java中常见的规范7.&nbsp;讲讲Restful规范——没答出来8.&nbsp;数据库用的什么9.&nbsp;了解哪些java集合,讲讲它们的原理(LinkedList、ArrayList)10.&nbsp;Hashmap线程安全吗?哪个是线程安全的?介绍一下原理(Hashmap、ConcurrentHashmap)11.&nbsp;说说mysql优化12.&nbsp;说说逻辑外键13.&nbsp;说说mysql的索引优化——没答出来14.&nbsp;看到你的第二个项目是与git相关的,那么你来说说我们常用的git命令吧15.&nbsp;数据结构和算法掌握得怎么样16.&nbsp;口头手撕:非严格单调递增数列如何去重?17.&nbsp;看你简历上说对前端有一定了解,那就是对前端三件套和vue了解并可以进行开发吗18.&nbsp;挑一个项目给我简要介绍一下19.&nbsp;项目中遇到的难点20.&nbsp;bitmap操作的时间复杂度——没答出来21.&nbsp;常见的排序算法,它们的时间复杂度22.&nbsp;讲一讲快速排序的具体实现——没答出来23.&nbsp;看到你项目中第一点写到JWT令牌完成登录,Threadlocal储存用户信息,能讲讲吗24.&nbsp;ThreadLocal是弱引用,那么相比于强引用,弱引用的优势是什么——没答出来25.&nbsp;实习时长26.&nbsp;学校在哪27.&nbsp;未来的职业规划28.&nbsp;反问&nbsp;
查看27道真题和解析
点赞 评论 收藏
分享
05-15 21:28
武汉大学 C++
2.20日的第一次投递,正式吹响了“寻找暑期实习”这一长久战役的号角。在差不多近10天的等待后,我收到了一个包裹,里面装着的是一只可爱的蛇年企鹅,这是我去年几个月奋斗的成果,一份优秀作业的奖励。我自然是万分高兴,虽然只是一个玩偶,但是我确确实实我一直憧憬的背影迈出了第一步。我高兴地和学长分享我地喜悦,他也期待着与我共事。很快,一声邮件的清响将我从对未来的幻想中拉回了现实,这是我收获的第一封面试邀请函,我饱含着期待进入了会议室,然后面试的过程却让我大汗淋漓,磕磕绊绊的自我介绍,语无伦次的回答,短短的30分钟过去了,我如同长跑结束般地松了口气,但是内心也渐渐泛起隐忧,很显然,这次面试如同当头一棒,让我认清了我和真正求职所需能力的差距。在短暂的复盘调整后,没想到立马又有约面。我自然是大喜过望,高兴地和前辈们分享这份信息,同时讨教着面试的技巧与方法。然而这一次又令我大失所望:发散开放的问答,对知识点的深度探索,对项目的细致考量让我头昏眼花,之前背的八股就像一块破烂的遮羞布,同时也令屏幕对面的面试官大失所望。在最后的反问阶段,我小心翼翼地询问面试官关于面试表现和改进部分,面试官也是倾囊相授,字字珠玑。细细记下所有的不足之处,没过两天就立马又约一面。学长要我放心,说我的简历肯定是十分优秀,不然也不会这么快的一捞再捞,我的信心也是水涨船高,满怀期待的进行下一次的面试。但是命运的礼物早已在暗中标好价格。在3.12面完最后一场之后,整个3月再无一次面试,无论怎么海投也是如同石沉大海,杳无音讯。但是我并没有停下我的脚步,第二次面试的面试官的话语无时无刻不浮现在我的脑海中,我开始按照他提到的缺点一一补足,一刻也不敢松懈,我开始细致规划每天的行动,全力完成自己定下的任务。然而当我准备妥当之时,却再无机会给我了。3月底的一天我走出沉闷的宿舍,约上了几个好友,在东湖边漫步。当询问起我的进度时,我无言以对,接受了那么多的帮助,却颗粒无收,我开始怀疑未来的方向和脚步,我也犹豫着是否还要继续走下去,要不考研吧,要不考公吧,种种情绪如麻般纠缠,同时也蚕食着我的内心。我开始怀念起去年三月在扬州的日子,那是一次恣意地出逃,为了逃离沉闷生活的冒险,对啊,我的冒险精神,我对生活的勇气,我的最终理想,怎么全都忘的一干二净呢?4月份终于迎来了转机,曾经的投递也渐渐有了回应,我又开始面试了,这一次我准备充分,侃侃而谈,过关斩将倒是渐渐有了起色。在4月底,我迎来了心仪公司的HR面,满怀希望地等待着结果的到来。但是时间一晃就到51,那边却毫无动静。真的太累了,一次次的期待一次次的失望和一次次的跌倒爬起,我感觉我已经失去了所有的生命力,我真的很想自暴自弃,但是我并没有。吊着最后一口气终于熬过了51,等来的确是一阵噩耗:HR满怀歉意地向我表示岗位并不是特别匹配。万念俱灰。我瘫软在床上,不知道该干什么,机械地扫视着无聊的网页,手中捏着奶奶51假期送给我的貔貅玉佩。“说什么保佑我呢。。。”我从来不信鬼神,此时戴在身上也不过留个念想罢了。突然手机急促的铃声响起,我定睛一看竟然的老爸打来的。当时是晚上11点,第一句话就是问我吃了饭没,我说当然吃了,但是听着电话另一头疲惫略带喘气的声音,我心头一紧。“爸爸刚吃完呢,你奶奶不小心摔了一跤,摔的很严重。”我顿感眼前一黑,仿佛周围的一切事务都被吸进了一个无边的黑洞,我颤抖地询问着,手上也捏着生疼,当听到奶奶虚弱的声音时,也是终于松了一口气。我躺在床上空洞地望着天花板,随后随手打开了炫狗的直播,听着一声声马头干笑着。当看到涅槃打野被替换的时候,我跟朋友发消息说,涅槃也挺努力的,就是实力不够。然而我却在两天后收到了我的涅槃信息,新增了一轮补面。我心中的斗志稍稍燃起,丝毫不敢懈怠,在图书馆鏖战了几天,最终坐在电脑前笑着面对面试官。听完我的自我介绍后,面试官笑着问我,是不是背了很多遍了?我平淡地说,是的。面试过程很顺利,一点八股没有,全程谈论项目和其中发散出来的问题。面罢,我长出一口气,叫上了一直伴我身边的几位好友吃了顿饭。在回宿舍的车上,我收到了offer邮件。我打了个电话给奶奶,我说奶奶你的玉佩真的太有用了,也是怪我把这玉带走了。奶奶笑着恭喜我,说这本来就是给你的,早说了带这个能逢凶化吉啊。叽里呱啦说什么呢,一篇千字流水账。但是我还是想感谢,感谢一路上遇到的贵人、面试官们,一路上给予我帮助的学长学姐,老师朋友们,当然,还有在座的各位牛友们,虽然每次看牛客都很焦虑,但是最后也是受益良多,各位都是我的贵人、良师益友!言尽于此,我也不会忘了我的初心和信念:bring&nbsp;more&nbsp;fun&nbsp;to&nbsp;people。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务