美团大众点评2017校园招聘笔试(编程题)

  • 第一题:圆桌边放了一圈红包形成一个环,每个红包的金额不同,围绕圆桌走一圈选择若干个红包,规则是不能拿相邻的红包,请问能拿到红包 最多的总金额是多少?(红包金额保存在一个数组中,认为数组第一个元素和最后一个元素相邻,形成闭合的环。)

输入包括多行:
第一行为整数N,N大于零小于等于20;
以下N行,每行为一个数组, 每个元素为一个红包的金额,如:
2
1,2
1,3,4
输出包括N行,每行一个数字,为拿到红包的总金额。如:
2
4

代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Hongbao {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = Integer.valueOf(in.nextLine());List<int[]> list = new ArrayList<int[]>();for(int i = 0; i < n; i++){String[] temp = in.nextLine().split(",");int[] arr = new int[temp.length];for(int j = 0; j < temp.length; j++){arr[j] = Integer.valueOf(temp[j]);}list.add(arr);}for(int[] l : list){if(l.length%2 == 0){int ou = 0;int qi = 0;for(int i = 0; i < l.length; i++){if(i%2 == 0)ou += l[i];elseqi += l[i];}System.out.println(ou >= qi ? ou : qi);}else{int ou = 0;int qi = 0;for(int i = 0; i < l.length - 1; i++){if(i == 0){ou += (l[0] >= l[l.length - 1]) ? l[0] : l[l.length - 1];}else{if(i%2 == 0)ou += l[i];elseqi += l[i];}}System.out.println(ou >= qi ? ou : qi);}}}}
  • 给定一棵多叉树,每个节点保存一个int类型数字且节点数字不重复,要求从上到下按层次打印每个节点的数字,每个层次按从左到右的顺序。
    要求:
    (1)实现 一颗多叉树
    (2)根据自定义输入 ,构造多叉树
    (3)从左到右按层输出多叉树
    输入包含多行,每行有空格隔开的多个数字,第一个数字为某一个父节点的值,后面N个数字为父节点的所有子节点的值,按从左到右的顺序排序,所有节点的值为整数,取值范围[0,100]。
    如:
    5 2 3
    2 6 7 8
    (5为根节点,有两个子节点;2为5的第一个子节点,包含三个子节点)
    输出包含一行,用空格隔开:
    5 2 3 6 7 8

代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Duoshu {public static void main(String[] args) {Scanner in = new Scanner(System.in);String[] firstLine = in.nextLine().split(" ");TreeNode root = new TreeNode(Integer.parseInt(firstLine[0]));List<int[]> list = new ArrayList<int[]>();while(in.hasNextLine()){String[] line = in.nextLine().split(" ");int[] temp = new int[line.length];for (int i = 0; i < line.length; i++) {temp[i] = Integer.valueOf(line[i]);}list.add(temp);}TreeNode temp = null;for (int i = 1; i < firstLine.length; i++) {if(i == 1){root.firstChild = new TreeNode(Integer.valueOf(firstLine[i]));temp = root.firstChild;addChild(temp, list);}else{temp.nextBro = new TreeNode(Integer.valueOf(firstLine[i]));temp = temp.nextBro;addChild(temp, list);}}temp = root;while(temp != null){printBro(temp);temp = temp.firstChild;}}public static void printBro(TreeNode node){TreeNode temp = node;System.out.print(temp.value + " ");while(temp.nextBro != null){temp = temp.nextBro;System.out.print(temp.value + " ");}}public static void addChild(TreeNode node,List<int[]> list){for (int[] l : list) {if(l[0] == node.value){TreeNode temp = null;TreeNode tempNode = null;for(int i = 1; i < l.length; i++){if(i == 1){node.firstChild = new TreeNode(Integer.valueOf(l[i]));tempNode = node.firstChild;addChild(tempNode, list);if(temp != null)temp.nextBro = node.firstChild;}else{tempNode.nextBro = new TreeNode(Integer.valueOf(l[i]));tempNode = tempNode.nextBro;addChild(tempNode, list);if(i == l.length - 1)temp = node.nextBro;}}}}}static class TreeNode{public int value;public TreeNode firstChild;public TreeNode nextBro;public TreeNode(){}public TreeNode(int value){this.value = value;}}
}

由于能力有限,错误或者不足的地方还望指正,谢谢!

美团大众点评2017校园招聘笔试(编程题)相关推荐

  1. 美团点评2017秋招笔试编程题

    美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...

  2. 奇虎360_2017校园招聘笔试编程题第一题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第一题. 1. 题目 2. 输入输出及样例 3. 我的思路 这题应该看题目理解一下就有思路,最简单粗暴的就是创建一个二维数组in ...

  3. 奇虎360_2017校园招聘笔试编程题第二题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第二题.第二道题也不难想到思路,但是如果写法不当,可能无法满足题目的时间限制. 1. 题目 2. 输入输出及样例 3. 我的思路 ...

  4. 奇虎360 2015校园招聘笔试编程题

    题目一: 写一个函数,根据两文件的绝对路径算出相对路径. 如a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c&q ...

  5. 商汤科技 2019校园招聘笔试编程题-2018.09.07

    本来阿里和商汤冲突了,就放弃了阿里的劝退型笔试,结果,商汤也劝退,只发一下题目做参考吧!知道题解的同学可以在评论区粘上链接,我会随时更新并加以感谢的.

  6. 滴滴 2019校园招聘笔试编程题-2018.09.18

    输入: slep slap sleep step shoe shop snap slep 输出: slep slap step 代码是交卷后写出来的,没有经过测试,不知道是否能够AC 利用DP求出每个 ...

  7. 京东2015校园招聘笔试编程题

    题目一: 请编写一个函数func,输入一个正整数n,返回一个最小的正整数m(m>9,即m至少包含两位数),使得m的各位乘积等于n,例如输入36,输出49:输入100,输出455,如果对于某个n不 ...

  8. 网新恒天2014校园招聘笔试编程题

    已知memcpy的函数为: void* memcpy(void *dest , const void* src , size_t count)其中dest是目的指针,src是源指针.不调用c++/c的 ...

  9. 美团2021届秋季校园招聘笔试真题解析:小团的复制粘贴

    问题 小团是一个莫得感情的 CtrlCV 大师,他有一个下标从 1 开始的序列 A 和一个初始全部为 -1 序列 B ,两个序列的长度都是 n .他会进行若干次操作,每一次操作,他都会选择 A 序列中 ...

  10. 搜狗2016校园招聘之编程题解析-大数据开发

    搜狗2016校园招聘之编程题解析-大数据开发 解题思路: 使用JDK中的Point2D类,该类定义了坐标系空间中的一个点 Point2D是一个抽象类,但是在该类内部定义了静态的Double类,并且Do ...

最新文章

  1. Android studio官网资料
  2. chrome 插件开发心得
  3. ShowAllPic--图片
  4. OpenCV C++ 02 - Create a Blank Image Display
  5. Sightseeing Cows POJ - 3621
  6. 打印发现function toUpperCase() { [native code] }
  7. 6.6纪念永远的badboy
  8. tsdb java_OpenTSDB 问题集锦
  9. Java网络编程之UDP
  10. 在lua中调用DLL
  11. AWE2020:黄金十年再踏征程,以科技“智竞”未来
  12. win7 修复计算机 黑屏,Win7系统崩溃不用重做!Win7无法进入桌面黑屏
  13. 【向生活低头】如何在Gold Wave软件中为声音添加背景音乐
  14. power apps -- Game Demo page 制作游戏步骤详解
  15. Android生日礼物(含拼图游戏,背景音乐,自动拨号等功能实现)--根据代码规范修改注释以及定义
  16. 困难时拉你一把的图片_人,最不能忘记的,是在你困难时拉你一把的人,句句现实经典...
  17. 服务器flash卡的作用是什么原因,直播卡顿原因详解及优化
  18. java求循环节长度
  19. 传输层协议 ——— TCP协议
  20. 最常用的 12 个物联网协议和标准

热门文章

  1. 在php中使用高德api,javascript - 高德地图定位如何调用api?
  2. 我要偷偷的学Python,然后惊呆所有人(最后一天)
  3. 婚宴座位图html5,婚宴座位图模版欣赏【婚礼纪】
  4. Excel基础篇(四):查找重复身份证号码
  5. 如何在Mac上清理垃圾文件?
  6. 我有一个梦想(I have a dream)
  7. DeepStream User Guide
  8. Planning with Goal-Conditioned Policies读书笔记
  9. 数学中最神奇的常数-无理数e的由来
  10. 黑晓军 华中科技大学 博士 副教授