Bilibili后端笔试试卷

第一题:原地翻转字符串,要求空间复杂度O(1),时间复杂度 O(n)

AC 100% 代码:

import java.util.Scanner;/*** @author HGS* @date 2019/08/20*/
public class BiliBili01 {public static void swap(char[] chars, int a, int b) {char temp = chars[a];chars[a] = chars[b];chars[b] = temp;}public static void main(String args[]) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();char[] temp = s.toCharArray();int len = temp.length;int l = 0;int r = len - 1;// 第一步,首先把整个字符数组逆序过来while (l < r) {swap(temp, l++, r--);}l = 0;// 第二步,把以空格还原逆序的单词boolean isHaveBlank = false;for (int i = 0; i < len; i++) {if (temp[i] == ' ') {r = i - 1;while (l < r) {swap(temp, l++, r--);}l = i + 1;isHaveBlank = true;  // 标记为真}}r = len - 1;while(l < r){  //最后剩下的一个单词也要逆序swap(temp,l++,r--);}if (!isHaveBlank) { // 如果不含空格再倒叙回来l = 0;r = len - 1;while (l < r) {swap(temp, l++, r--);}}for (int i = 0; i < len; i++) {System.out.print(temp[i]);}}
}

第二题:将一个数组,连接起来排成一个数,输出能排出的所有数字最小的一个

AC 100% 代码:

import java.util.Arrays;
import java.util.Scanner;/*** @author HGS* @date 2019/08/20*/
public class BiliBili02 {public static void main(String args[]) {Scanner sc = new Scanner(System.in);String s = sc.next();String[] split = s.split(",");Arrays.sort(split, (s1, s2) -> (s1 + s2).compareTo(s2 + s1));for (int i = 0; i < split.length; i++) {System.out.print(split[i]);}System.out.println();}
}

第三题:01背包问题

AC 100% 代码:时间复杂度O(n*logn)

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;/*** @author HGS* @date 2019/08/20*/
public class BiliBili03 {public static class Node {int w;int v;double wv; // 单位w的价值Node(int w) {this.w = w;}}public static void main(String args[]) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();Node[] nodes = new Node[n];for (int i = 0; i < n; i++) {int w = sc.nextInt();nodes[i] = new Node(w);}for (int i = 0; i < n; i++) {int v = sc.nextInt();nodes[i].v = v;}// 贪心思路,设置一个价值数组 单位w的价值v,价值大的优先for (int i = 0; i < n; i++) {if (nodes[i].w == 0) {nodes[i].wv = Integer.MAX_VALUE;} else {nodes[i].wv = nodes[i].v * 1.0 / nodes[i].w;}}Arrays.sort(nodes, new Comparator<Node>() { // 根据价值从大到小排序@Overridepublic int compare(Node o1, Node o2) {String s1 = String.valueOf(o1.wv);String s2 = String.valueOf(o2.wv);return s2.compareTo(s1);}});int res = 0;for (int i = 0; i < n; i++) {if (nodes[i].w <= m) {res += nodes[i].v;m -= nodes[i].w;}if (m <= 0) {break;}}System.out.println(res);}
}

Bilibili 2020校招 后端笔试试卷相关推荐

  1. 为了OFFER | 腾讯2020校招后端《解压字符串》

    @Author:Runsen @Date:2020/9/6 大四刷题拼offer系列,不拼不行啊.自己知道自己的数据结构算法很菜.而且2020/9/6今晚还有腾讯的笔试,祝我好运吧.自己知道成功的可能 ...

  2. 滴滴2020校招算法笔试 2019.08.27

    选择题: 对于二分类决策树,属性A有两个属性值,A1属性值两个类别的个数分别为3,0.A2的属性值两个类别的个数分别为4,3.那么A属性的基尼系数值为().(0.343) 有一个顺序表,长度为n,若要 ...

  3. 网易游戏(互娱)2020校招在线笔试-游戏研发

    第一题 小A刚学了二进制,他十分激动.为了确定他的确掌握了二进制,你给他出了这样一道题目:给定N个非负整数,将这N个数字按照二进制下1的个数分类,二进制下1的个数相同的数字属于同一类.求最后一共有几类 ...

  4. 2020校招搜狗笔试

    小狗的 Map 设计 题目描述 现需要设计一个Map<key,val>,满足以下条件 Map 的容量是一个固定值 N,最多保存 N 个记录 当执行插入操作时, 首先查询该 key 是否存在 ...

  5. 【面试题】网易互娱(游戏)2020校招在线笔试-游戏研发第一批[水平线]

    伞屉国是一个以太阳能为主要发电手段的国家,因此他们国家中有着非常多的太阳能基站,链接着的基站会组合成一个发电集群.但是不幸的是伞屉国不时会遭遇滔天的洪水,当洪水淹没基站时,基站只能停止发电,同时被迫断 ...

  6. 网易游戏(互娱)2020校招在线笔试-游戏研发第一批-笔试编程题

    [编程题]二进制计数-研发 小A刚学了二进制,他十分激动.为了确定他的确掌握了二进制,你给他出了这样一道题目:给定N个非负整数,将这N个数字按照二进制下1的个数分类,二进制下1的个数相同的数字属于同一 ...

  7. 【面试题】网易互娱(游戏)2020校招在线笔试-游戏研发第一批[游泳池]

    小明作为一个游泳池管理员,以玩弄给水管和排水管为乐,也因此产生了很多数学题考验小朋友. 现在小明想把这个行动升级,考验一下程序员,做了一个自动装置来控制给水管和排水管.在开始时,给水管和排水管都是打开 ...

  8. bilibili 2020 校招面试题程序题

    [编程题]复数乘法 题目描述: 输入两个表示复数的字符串,输出它们相乘的结果的字符串 复数字符串用a+bi表示(a, b 为整数, i为虚数单位,i² =1) 输入描述: 两个表示复数的字符串 输出描 ...

  9. 2020哔哩哔哩校招后端开发笔试编程题总结

    2020哔哩哔哩校招后端开发笔试编程题总结 1.给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9) 暴力求解法: package Day4 ...

最新文章

  1. java拷贝文件权限_boto3 copy vs copy_object关于s3中的文件权限ACL
  2. 《数据结构与算法分析:C语言描述》复习——第六章“排序”——基数排序
  3. java无参试题_JavaEE基础面试题0
  4. html 运用正则表达式,HTML5 使用正则表达式
  5. WAMP 2.2 配置与IIS共用单IP,多域名多网站配置方法
  6. arm shellcode 编写详析1
  7. Zookeeper使用超级用户删除带权限的节点
  8. Android安卓|安卓概述、安卓开发、安卓入门、安卓架构
  9. 冒泡排序法和选择排序法
  10. NET开发资源站点和部分优秀.NET开源项目
  11. linux安装python3环境_linux安装python3环境并配置虚拟环境
  12. 面试题之get和post的区别
  13. Delphi2010及注册码下载地址
  14. Word文档的两种密码忘记了,怎么办?
  15. 降维 php,线性降维方法 - 百度开发者中心的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. HttpPrinter-网页打印控件
  17. PHP 图片合成、仿微信群头像
  18. Sqoop导入导出基本操作
  19. Linux文本比较指令(diff,cmp)详解
  20. PAT1003甲级 java

热门文章

  1. java单线程异步_Java 实现异步调用
  2. 新手如何快速入门 深度学习
  3. 「Redis 系列」那些你不知道的Redis配置文件详解,毕向东java基础视频教程
  4. 计算机导论胡致杰,计算机导论 胡致杰 主编
  5. Java selenium 全屏截图和按元素截图介绍
  6. 凯利公式介绍、计算公式以及在投资中的运用
  7. 轩辕传奇服务器维护,轩辕传奇12月17日更新公告_轩辕传奇12月17日部分服务器停服更新公告_牛游戏网...
  8. 用Python爬取网易新闻
  9. DARNED:RNA编辑位点数据库
  10. 【蓝牙音频SoC】BES2700YP、BES2600YP、AB1565A、QCC3056芯片基本介绍