记录三道编程题

第一题

求最小客服人数
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
携程呼叫中心7×24小时帮助旅客解决在途中的各种问题,为了尽可能提升服务质量,公司希望客服人数可以满足所有旅客的来电,不用排队等待人工客服。现在提供客服中心所有的通话记录时间,你能算出最少需要多少名客服吗?输入
输入一个n表示要输入的通话记录个数,接下来输入n行,每行为逗号相隔的两个整数,两个数字分别代表呼入时间和挂断时间的时间戳。 举例:10,30,表示[10,30),代表第10秒呼入,第30秒已经挂断,即第30秒可以接入新的来电; 每一行都是一条通话记录,通话记录已经按呼入时间由小到大排序;输出
输出一个整数;代表最少需要多少客服,可以满足所有旅客来电不用等待。样例输入
6
0,30
0,50
10,20
15,30
20,50
20,65
样例输出
5

第一次,ac:20%,用错了方法,考虑不周,浪费40多分钟,导致最后一题没时间做

import java.util.ArrayList;
import java.util.Scanner;public class First {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();ArrayList<Person> list = new ArrayList<Person>();//输入n行数据sc.nextLine();for(int i = 0; i < n; i++){String string = sc.nextLine();String[] s = string.split(",");Integer[] arr = new Integer[2];arr[0] = Integer.parseInt(s[0]);arr[1] = Integer.parseInt(s[1]);if(list.size() == 0){Person person1 = new Person();person1.time.add(arr);list.add(person1);} else {//判断每个客服这个时间段是否有时间for(int j = 0; j < list.size(); j++){if(judge(list.get(j), arr)){list.get(j).time.add(arr);} else {Person person2 = new Person();person2.time.add(arr);list.add(person2);}}}}//输出客服人数System.out.println(list.size());}//判断该客服这段时间是否有空public static boolean judge(Person person, Integer[] arr){Integer[] temp;for(int i = 0; i < person.time.size(); i++){temp = person.time.get(i);//客服时间段包含该时间段if(temp[0] <= arr[0] && temp[1] >= arr[1]){return false;}//相交if((temp[0] >= arr[0] && temp[0] < arr[1]) || (temp[1] > arr[0] && temp[1] <= arr[1])){return false;}}return true;}}
class Person{ArrayList<Integer[]> time = new ArrayList<Integer[]>();
}

第二次:ac:100%  方法:bitmap

import java.util.HashMap;
import java.util.Scanner;public class First2 {public static void main(String[] args) {int count = 0;Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.nextLine();HashMap<Integer, Integer> map = new HashMap<>();for(int i = 0; i < n; i++){String string = sc.nextLine();String[] split = string.split(",");int[] arr = new int[2];arr[0] = Integer.parseInt(split[0]);arr[1] = Integer.parseInt(split[1]);for(int j = arr[0];j < arr[1]; j++){if(map.get(j) == null){map.put(j,1);} else {map.put(j, map.get(j) + 1);}count = map.get(j) > count ? map.get(j) : count;}}System.out.println(count);}
}

第二题

携程海洋馆的海豚小宝宝
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
携程海洋馆中有 n 只萌萌的小海豚,初始均为 0 岁,每只小海豚的寿命是 m 岁,且这些小海豚会在 birthYear[i] 这些年份生产出一位宝宝海豚(1 <= birthYear[i] <= m),每位宝宝海豚刚出生为 0 岁。问 x 年时,携程海洋馆有多少只小海豚?输入
n(初始海豚数)m(海豚寿命)海豚生宝宝的年份数量(假设为p)海豚生宝宝的年份1...海豚生宝宝的年份px(几年后)输出
x年后,共有多少只小海豚样例输入
5
5
2
2
4
5
样例输出
20

ac:38%

import java.util.HashMap;
import java.util.Scanner;public class Second {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int p = sc.nextInt();int[] arr = new int[p];for(int i = 0; i < p; i++){arr[i] = sc.nextInt();}int x = sc.nextInt();HashMap<Integer, Integer> map = new HashMap<>();map.put(1,n);int temp = 0;for(int i = 1; i <= x; i++){if(map.get(i) != null) {temp = map.get(i);for (int j = 0; j < arr.length; j++) {if (map.get(i + arr[j]) == null) {map.put(i + arr[j], temp);} else {map.put(i + arr[j], map.get(i + arr[j]) + temp);}}}}int count = 0;for(int i = x - m + 1; i <= x; i++){if(map.get(i) != null){count += map.get(i);}}System.out.println(count);}
}

第三题

模拟ElasticSearch中的FuzzyQuery中的单词纠正
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
ElasticSearch 是常用的开源搜索引擎,支持fuzzyQuery 给搜索带来很大便利。其简单原理如下,surprize有拼写错误,把z换成s后得到  surprise,即纠正一个字母,就可以匹配正确的单词。同样,把surprize的z替换成s,然后在末尾加个d,可以得到surprised。给定字典[ "surprise", "happy", "ctrip", "travel", "wellcome","student","system","program","editor"]为正确单词。编程实现单词纠正,判断输入的单词能否在2(包含)次纠正操作内得到字典中的单词。纠正操作是以下三种,1:替换字符串中的一个字母;2:删除字符串中的一个字母;3:在字符串中增加一个字母。输入
待纠正的单词1...待纠正的单词n输出
如果可以匹配,请返回字典中的单词,如果无法匹配,请返回字符串null样例输入
hipp
样例输出
happy

没时间做了

携程笔试2020/04/01相关推荐

  1. 《携程技术2020年度合辑》,送给爱学习的你

    01 序言 2020年跌宕起伏,突如其来的疫情对旅游行业造成了前所未有的冲击,也让更多人进一步感受到技术互联互通的重要性.对于旅游业技术人而言,外部的不可控因素让我们更加聚焦于系统的核心能力建设上.随 ...

  2. 携程发布2020年财报:四季度营业利润率10% 疫情以来连续两季度盈利

    北京时间2021年3月4日, 携程集团(纳斯达克股票代码:TCOM)公布了截至2020年12月31日第四季度及全年的财务业绩. 在全球旅游业饱受疫情冲击的背景下,携程在2020年全年的业绩表现&quo ...

  3. 2021.8.12携程笔试第三题:建树游戏DFS

    2021.8.12携程笔试 讨论区 在做最后一题的时候把题意看错了,悔之莫及,故记录此文引以为戒! 建树游戏 问题描述 有n个节点和n-1条边,形成一棵树,每个节点有一个权值.把其中一条边删除就形成了 ...

  4. 携程android开发面试题,2017携程笔试题目

    携程是我国著名的旅游为主的网站,想进入携程工作吗?小编为大家整理了2017携程笔试题目,欢迎阅读参考! 2017携程Web前端实习生招聘笔试题 考察encodeURI encodeURI(), dec ...

  5. 2018年携程笔试分享

    晚上参加了携程产品岗的笔试,笔试时间一共一个半小时:20道单选题加3道主观题:单选题总体来说比较简单,几道产品经理基本问题,基本上去牛客网上刷一遍,就没什么问题了....下面重点说一下主观题: 1.为 ...

  6. 【笔试】敏感词替换-携程旅游2020秋招笔试第一场

    描述 (匹配条件全排列) 输入三行 替换字符串 被替换部分,根据全排列进行匹配 解题思路 import java.util.*;/*** @Author bennyrhys* @Date 2020-0 ...

  7. 2020.04.01 【ABAP随笔】- ABAP面试分享

    ABAP面试经验(回忆) 最近受疫情影响,项目比较少,大家有的降薪有个裁员,日子都不太好过,幸好我的项目还没有结束,所以还在做项目.最近参加面试的小伙伴比较多,我回忆去年我在面试四大的时候,3轮面试的 ...

  8. 携程笔试(惨败经历)第一题 leetcode 253

    刚开始生怕题做不完,选择题听说去年是15分钟20题,一顿乱选. 第一道选择题 树的前序遍历35421,中序遍历25431, 后序遍历应该是....? 这道题是不是有点问题,没敢仔细看就选了.... 编 ...

  9. 携程笔试__界面测试用例

    GUI: 1,界面整洁 2,排版清晰,控件布局合理 3,图片完整 4,图标对齐 5,界面用色风格一致 6,不同分辨率下,页面的清晰度 7,窗体是否固定.移动 8,界面长宽比合理 9,界面文字大小颜色合 ...

最新文章

  1. CSS盒子模型(border、padding、margin、圆角边框、盒子阴影、文字阴影、新闻列表综合案例、新浪导航栏案例)
  2. 美团方法论,苦练基本功
  3. C#中Socket多线程编程实例
  4. Ian Thiel:靠这 3 点,实现 30 倍增长,从不盈利到营收 5.5 亿
  5. AI基础:一文看懂BERT
  6. js中“||”和“”的高级用法 js,与或运算符 || 妙用
  7. java spring注解_spring注解是如何实现的?
  8. linux7网卡启动的过程,linux网络启动
  9. Entity Framework 并发处理
  10. Keras——保存和提取模型
  11. 身份证文字信息及人脸图片采集
  12. 华为5G专利收费标准曝光!原来卖专利真的很挣钱
  13. 五个手指含义(必会)
  14. 上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域: 0区 1区 2区 3区 4区 同城 临近两省 1500公里(含)以内 1500——2500公里 2500公里以上 上海 江苏
  15. html打造动画【系列2】- 可爱的蛙蛙表情
  16. robocup3d 发布比赛版本
  17. 转:Spark案例:Scala版统计单词个数
  18. vue项目通讯录_Vue实现类似通讯录功能(下)
  19. 最常用的18个SIP呼叫业务流程详解(1~5)
  20. 相机照片误删怎么恢复?

热门文章

  1. 视觉SLAM14讲——李群与李代数
  2. C# vb .net图像合成-多图片叠加合成
  3. 工业控制系统所面临的安全威胁
  4. java-net-php-python-15体育用品网上销售系统计算机毕业设计程序
  5. 《从零开始学架构》一:基础架构
  6. 无敌寂寞的系统一键重装软件推荐!
  7. Sonarqube源码解析
  8. 【STM32】5—UART串口(中断模式)
  9. IDL(ENVI/IDL) 简(jian)明(lou)教程:二、ENVI/IDL批处理入门(以投影转换为例)
  10. (Loadrunner)Abnormal termination, caused by mdrv process termination.(转)