第一题:Comparable和Comparator区别是什么?

回答:
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。

第二题:http/2相比http/1.1有什么新特性?

回答:
二进制分帧
http1.x是文本格式传输,http2二进制格式传输,并且被切分为多个帧发送,帧可以根据头部流标识重新组装。
单一长连接
同一个域名使用一个TCP连接,能减少握手带来的延时.
多路复用
HTTP/2允许在相同连接中多个请求和回答交错.
头部压缩
用HPACK压缩头部,使用首部表来进行首部字段存储,只有当首部表中的数据变更或为发送过时,才会发送HTTP头部字段.首部表分为静态表和动态表,静态表包含常用字段,动态表包含自定义字段等非常用字段,当新增或改变字段时,会增加或修改动态表中的数据.
服务器推送
客户端请求资源X,服务器判断客户端还需要别的资源,可以主动推送这些资源,客户端需要显示允许服务器启用推送功能.

第三题:A公司和B公司有n个合作的子项目,每个子项目由A公司和B公司各一名员工参与。一名员工可以参与多个子项目。 一个员工如果担任了该项目的项目经理,它需要对所参与的该项目负责。一个员工也可以负责多个项目。 A公司和B公司需要保证所有子项目都能有人负责,问最少需要指定几名项目经理?

回答:

import java.util.*;
public class Main
{public static void main(String[] args){Scanner sc = new Scanner(System.in);String left = sc.nextLine();String right = sc.nextLine();int n = sc.nextInt();String[] l = left.split(" ");String[] r = right.split(" ");int[] a = new int[l.length];int[] b = new int[r.length];HashMap<Integer, Integer> num = new HashMap<Integer, Integer>();int count = 0;int length = a.length + b.length;int[][] map = new int[length][length];int[] match = new int[length];Boolean[] used = new Boolean[length];for (int i = 0; i < length; i++){Arrays.fill(used, false);Arrays.fill(map[i], -1);Arrays.fill(match, -1);}for (int i = 0; i < a.length; i++){a[i] = Integer.valueOf(l[i]);num.put(a[i], i);}for (int i = 0; i < b.length; i++){b[i] = Integer.valueOf(r[i]);num.put(b[i], i + a.length);}for (int i = 0; i < n; i++){int xx = sc.nextInt();int yy = sc.nextInt();map[num.get(xx)][num.get(yy)] = 1;map[num.get(yy)][num.get(xx)] = 1;}search(num, a, b, map, match, used, length);for (int i = 0; i < length; i++){if(match[i] != -1){count++;}}System.out.println(count/2);
}public static Boolean findPath(HashMap<Integer, Integer> num, int[][]        map, int x, Boolean[] used, int[] match, int length)
{for (int i = 0; i < length; i++){if(map[x][i] == 1){if(used[i] == false){used[i] = true;if(match[i] == -1 || findPath(num, map, match[i], used, match, length)){match[x] = i;match[i] = x;return true;}}}}return false;
}public static void setUsed(Boolean[] used)
{for (int i = 0; i < used.length; i++){used[i] = false;}
}public static void search(HashMap<Integer, Integer> num, int[] a, int[] b,          int[][] map, int[] match, Boolean[] used, int length)
{for (int i = 0; i < a.length; i++){if(match[num.get(a[i])] == -1){setUsed(used);findPath(num, map, num.get(a[i]), used, match, length);}}for (int i = 0; i < b.length; i++){if(match[num.get(b[i])] == -1){setUsed(used);findPath(num, map, num.get(b[i]), used, match, length);}}
}
}

第四题:疫情逐步缓和后,电影院终于开业了,但是由于当前仍处于疫情期间,应尽量保持人群不聚集的原则。 所以当小易来电影院选定一排后,尽量需要选择一个远离人群的位置。 已知由0和1组成的数组表示当前排的座位情况,其中1表示已被选座,0表示空座 请问小易所选座位和最近人的距离座位数最大是多少? 有如下假设:至少有一个人已选座,至少有一个空座位,且座位数限制为


回答:

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String[] s1 = scan.nextLine().split(" ");scan.close();int[] nums = new int[s1.length];for (int i = 0; i < nums.length; i++)nums[i] = Integer.parseInt(s1[i]);int res = 0;int left, right;for (int i = 0; i < nums.length; i++) {if (nums[i] == 1) continue;left = i-1;right = i+1;int tmpRes = 1;while (left >= 0 || right < nums.length) {if ((left >= 0 && nums[left] == 1) || (right < nums.length && nums[right] == 1)) {res = Math.max(res, tmpRes);break;}if (left >= 0) left--;if (right < nums.length) right++;tmpRes++;}if (left < 0 && right >= nums.length) res = Math.max(res, tmpRes);}System.out.println(res);}
}

第五题:已知摩尔斯电码和字符映射关系如下: A -> 0 B -> 1 C -> 10 D -> 11 E -> 100 F -> 101 G -> 110 H -> 111 当前我们获取到了一串01数字字符串,需要进行摩尔斯电码解码,请问共有多少种解码方法?

回答:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));char[] str = br.readLine().toCharArray();int n = str.length;int[] dp = new int[n + 1];dp[n] = 1;         // 最后一个字符肯定只能是一种翻译// 从后往前遍历字符for(int i = n - 1; i >= 0; i--){dp[i] = dp[i + 1];     // 单字符码的情况if(str[i] == '1'){      // 对于"1",还有双字符码和三字符码的情况if(i + 2 <= n) dp[i] += dp[i + 2];if(i + 3 <= n) dp[i] += dp[i + 3];}}System.out.println(dp[0]);}
}

第六题: 网易严选建有N个自营仓分布在全国各地,标记为仓库1到N。 给定一个配货时间组(v,u,w),v为出发仓库,u为目标仓库,w为从出发仓库到目标仓库的耗时时间。可能存在仓库间过远,无法支持调拨转货。 指定一个出发仓库K,我们需要将供应商发送到K仓库的货配送到各个仓库。问配送到所有可到达仓库所要最短时间?如果无法全部调拨到,则返回-1.

回答:

import java.util.*;
public class Main
{    public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt();int K = sc.nextInt();int M = sc.nextInt();int[][] map = new int [N + 1][N + 1];int[] nodes = new int[N + 1];Boolean[] used = new Boolean[N + 1];for (int i = 0; i < N + 1; i++) {Arrays.fill(map[i], -1);Arrays.fill(nodes, Integer.MAX_VALUE);Arrays.fill(used, false);}nodes[K] = 0; for (int i = 0; i < M; i++) {int x = sc.nextInt();int y = sc.nextInt();int value = sc.nextInt();map[x][y] = value;}Dijskra(K, map, nodes, used, N);Boolean flag = false;for (int i = 1; i <= N; i++) {if(used[i] == false){flag = true;break;}}if(flag == true){System.out.println(-1);}else{int max = 0;for (int i = 1; i <= N; i++) {if(nodes[i]>max)max = nodes[i];}System.out.println(max);}}public static void Dijskra(int x, int[][] map, int[] nodes, Boolean[] used, int N){if(x == -1)return;used[x] = true;for (int i = 1; i <= N; i++) {if(map[x][i] != -1){if(nodes[i] > nodes[x] + map[x][i])nodes[i] = nodes[x] + map[x][i];}}int minpos = -1;int min = Integer.MAX_VALUE;for (int i = 1; i <= N; i++) {if(used[i] == false && nodes[i] < min){minpos = i;min = nodes[i];}}Dijskra(minpos, map, nodes, used, N);}}

结束,大家加油!!!希望大家都有多多Offer!共勉!

2021网易秋招Java笔试(第2批)相关推荐

  1. 2021.8.21 网易秋招开发笔试(题目 + java代码)

    2021.8.21 网易秋招开发笔试 一.题目: 二.程序 //采用的是深度优先搜索 import java.util.HashMap;public class wangyi {public stat ...

  2. 用友2023届秋招Java笔试-S2卷-编程题详解

    用友2023届秋招Java笔试-S2卷 其他的选择和多选不允许跳出 另外还有一道关于数据库查询的题: 有两个表,一个学生表,一个成绩表包含学生各个科目的成绩,学生表根据学生id和成绩表关联,要求的是通 ...

  3. 2021网易秋招笔试题(Android开发)

    网易笔试题(2021.08.08) 校招的笔试题通常是4道编程题,时间为2个小时,每题25分. 2021秋招笔试题总结如下,包含问题和代码实现. 题1:查找关键词 查找关键词(单词在文章中出现频率&g ...

  4. 秋招java笔试-诺瓦星云科技和老虎集团java笔试

    西安诺瓦星云科技笔试 笔试偏c- 题型:1.操作系统 2.网络接口 3.数据结构 4.面向对象 5.编程改错 友元函数.二分法.虚函数 2道改错是c语言的程序改错 老虎集团 1.公交车 1000个站台 ...

  5. 搜狗2018秋招Java笔试试题

    一.选择题(20) 1.以下没有用栈来实现的应用场景是:A A 进程调度 B 函数调用 C 表达式求值 D 树的节点的深度优先遍历 2.不定项选择,如下算法的时间复杂度D A O(n^3) B O(n ...

  6. 同城艺龙2018秋招Java笔试之newInstance()--Binrry(冰蕊)

    (一)原题: (二)写入eclipse运行的结果: (三)查找原因: 先查阅Java API中newInstance()的解释 中文大意为: 创建此Class对象表示的类的新实例.该类实例化为具有空参 ...

  7. 【每日面试】2021快手秋招Java开发二面

    作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channe ...

  8. 【每日面试】2021快手秋招Java开发三面

    作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channe ...

  9. 【每日面试】2021快手秋招Java开发一面

    作者:julia_ 链接:https://www.nowcoder.com/discuss/752971?source_id=discuss_experience_nctrack&channe ...

最新文章

  1. java的mythread_java多线程 - myShadow - OSCHINA - 中文开源技术交流社区
  2. 【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)...
  3. Unity3D4.* NGUI制作动态字库
  4. 数据湖存储格式Hudi原理与实践
  5. 排序算法系列之归并排序
  6. 御剑+php,ps创意制作一个御剑飞行效果教程
  7. c语言的缺陷与陷阱,C语言 宏陷阱与缺陷
  8. 不同编程语言语言的适用场景
  9. MovieClip序列帧动画 视频教程
  10. Android Alarm机制分析
  11. ESP8266 (WEMOS D1 R1 ) + L9110S_FOUR 驱动直流电机
  12. 3.3.3 Camelot亚瑟王的宫殿 USACO
  13. tf.losses.mean_squared_error函数浅析
  14. 高等数学学习笔记——第七十六讲——直角坐标系下二重积分的计算
  15. 青少年护眼灯哪个牌子好?青少年护眼灯品牌排行榜
  16. 【自学笔记】尚硅谷数据结构与算法Chapter 5 递归
  17. OBJECTPROPERTY用法整理
  18. hduoj 1214
  19. java计算机毕业设计中学招生管理系统源程序+mysql+系统+lw文档+远程调试
  20. 不比不知道,主流商业云计算解决方案大比拼!

热门文章

  1. android 文字Flash特效
  2. 计算机硬件中 cpu 总线,计算机硬件简介——CPU
  3. esp32之wifi状态机
  4. MSN多开,MSN多帐号登陆
  5. react前端面试题(实时更新)
  6. 为新的Facebook.com重建我们的技术栈
  7. 给小白的一些个人经验
  8. [QQ机器人]nonebot2 舔狗日记插件
  9. 解决win10硬盘不显示容量条的问题
  10. c语言循环语句输出五角型图案,C语言 用循环和if语句编程并打印输出实心五角星图案...