华为笔试题目

第一题太长,没看,直接输出的 过了40。剩下全A了
第二题,设计会议室
static List<String> getMeeting(List<String> list) {  if(list.size() == 0) return list;  list.sort((o1, o2) -> {  int aLeft = Integer.parseInt(o1.split(",")[0]);  int bLeft = Integer.parseInt(o2.split(",")[0]);  return aLeft - bLeft;  });  String cur = list.get(0);  for(int i = 1; i < list.size(); i++) {  String next = list.get(i);  int curStart = Integer.parseInt(cur.split(",")[0]);  int curEnd = Integer.parseInt(cur.split(",")[1]);  int nextEnd = Integer.parseInt(next.split(",")[1]);  int nextStart = Integer.parseInt(next.split(",")[0]);  if(curEnd <= nextStart) {  cur = next;  } else {  if(curEnd - curStart >= nextEnd - nextStart) {  list.remove(i);  i--;  } else {  list.remove(i-1);  i--;  cur = next;  }  }  }  return list;
}
第三题,白子走棋盘
import java.util.*;
public class Main1 {
    static int result = 0;
    public static void main(String[] args) {  Scanner in = new Scanner(System.in);
        while (in.hasNext()) {//注意while处理多个case
            char[][] a = new char[10][10];
            String[] strs = new String[10];
            for(int i = 0; i < 10; i++) {
                strs[i] = in.nextLine();
                for(int j = 0; j < 10; j++) {
                    a[i][j] = strs[i].charAt(j);
                }
            }
            int m = Integer.parseInt(in.nextLine());
            int n = Integer.parseInt(in.nextLine());
            
            /*for(int i = 0; i < 10; i++) {  for(int j = 0; j < 10; j++) {  System.out.print(a[i][j]);  }  System.out.println();
            }
            
            System.out.println(m);
            System.out.println(n);*/
            
            int[][] book = new int[10][10];
            book[n][m] = 1;
            dfs(a, n, m, book);
            System.out.println(result);
        }  }  static void dfs(char[][] a, int x, int y, int[][] book) {  if(x < 0 || x >= a.length || y < 0 || y >= a[0].length) {
            result = 1;  return;  }  int[][] next = {{1,0},{-1,0},{0,1},{0,-1}};  int xx, yy;  for(int i = 0; i < 4; i++) {  xx = x + next[i][0];  yy = y + next[i][1];  if(xx < 0 || xx >= a.length || yy < 0 || yy >= a[0].length) {  result = 1;   return;  }  }  for(int i = 0; i < 4; i++) {  xx = x + next[i][0];  yy = y + next[i][1];    if(xx < 0 || xx >= a.length || yy < 0 || yy >= a[0].length) {  result = 1;   return;  }    if(book[xx][yy] == 0 && a[xx][yy] == '0') {  book[xx][yy] = 1;  if(result != 1)dfs(a, xx, yy, book);  book[xx][yy] = 0;  }  }  return;  }
}
第一题实在太复杂了,读了两遍没看懂脑子不够用,八点正好面试就交了#华为##笔试题目##题解#
全部评论
排版好丑,一直不会搞这个
点赞 回复 分享
发布于 2018-09-08 21:18
你好!请问你是投的什么岗呀,什么时候投的呀,我投了好像并没有收到笔试通知耶,不知道是什么原因...
点赞 回复 分享
发布于 2018-09-08 22:39

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
点赞 12 评论
分享
牛客网
牛客企业服务