2018 完美世界校招笔试编程题(Java)
01背包简单题,只不过要用Java写,写了比较久一点
import java.util.Scanner;
public class Main {public static void main(String[] args) throws Exception {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();int score[] = new int[num];int time[] = new int[num];for (int i = 0; i < num; i++) {score[i] = scanner.nextInt();}for (int i = 0; i < num; i++) {time[i] = scanner.nextInt();}int totalTime = scanner.nextInt();System.out.println(getScore(score, time, totalTime, num));}public static int getScore(int score[], int time[], int totalTime, int size) {int num[] = new int[totalTime + 10];for (int a = 0; a < size; a++)for (int b = totalTime; b - time[a] >= 0; b--)num[b] = Math.max(num[b], num[b - time[a]] + score[a]);return num[totalTime];}
}
输入:
4
9 7 5 3
10 8 5 2
典型的贪心算法,可以参考田忌赛马
import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] arg) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] teamA = new int[n];int[] teamB = new int[n];for (int i = 0; i < n; i++) {teamA[i] = scanner.nextInt();}for (int i = 0; i < n; i++) {teamB[i] = scanner.nextInt();}System.out.println(getMostBonus(n, teamA, teamB));}public static int getMostBonus(int n, int teamA[], int teamB[]) {Arrays.sort(teamA);Arrays.sort(teamB);int n1 = 0, n2 = 0, l1 = n - 1, l2 = n - 1, j1 = 0, j2 = 0;for (int a = 0; a < n; a++) {if (teamA[n1] > teamB[n2]) {n1++;n2++;j1++;}else if (teamA[n1] < teamB[n2]) {j2++;n1++;l2--;}else {if (teamA[l1] > teamB[l2]) {j1++;l1--;l2--;}else if (teamA[n1] < teamB[l2]) {j2++;n1++;l2--;}elsebreak;}}return j1 * 100 - j2 * 100;}
}
2018 完美世界校招笔试编程题(Java)相关推荐
- 魔法币 java_网易2018校招笔试编程题-魔法币 java实现
魔法币 原题 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1:如果投 ...
- 经典笔试编程题--Java实现
转载自 经典笔试编程题--Java实现 1.输入一个正数n,输出所有和为n的连续正数序列. 分析:设定两个指针,min指向和为n的连续正数序列的最小值,max指向和为n的连续正数序列最大值.sum ...
- 华为2020校招笔试编程题 看这篇就够了(上)
背景 近日一位在华为的师兄整理了一份内部的提纲给我们,想着以后肯定不会去华为,于是乎分享给大家,看看菊花厂今年的笔试题目是什么样子的. 编程题范围 这好像来自一个华为内部的文档,据说今年华为内部也在进 ...
- 奇安信2021年校招笔试编程题
< 2020年9月12日奇安信笔试编程第一题 > <java实现获取数组中的连续子数组> 1. 题目信息 2. 参数要求 3. 解题思路 该题获取糖果可以分解为两个部分: (1 ...
- 搜狗2016年校招笔试编程题记录+总结
不同的职位题目应该不一样,我遇到的2道题,其一是搜狗问答中的作弊判断,其二是矩阵计算. 1. 搜狗问答作弊判断 简单来说,就是存在作弊刷积分的情况,所以需要判断哪些人作弊,判断遵循下面2个原则: (A ...
- 2020秋招——XX校招笔试编程题:回文串
回文串判断&打印给定字符串中的所有回文串 笔试时是纸质的,记错了indexOf()函数和charAt()函数,重大失误emmm,这样逻辑虽然都对了还是要gg,ww,反省中... 回文串:aba ...
- 网易2020校招笔试编程题回顾
把今天的记忆里面的笔试题的情况梳理一下,投递的是算法工程师: 题型总共分为选择题10*1 编程题10.20.20.30 问答题5*2 编程题: 1.倒数排序:给你一个数n,以及1-n的一个排列,让 ...
- 京东校招java笔试题_2017京东校招笔试编程题:进制转换、辗转相除
题目描述 时间限制:C/C++语言 1000MS 其他语言:3000MS 内存限制:C/C++语言 65536KB 其他语言:589824KB 题目内容:尽管是一个CS专业的学生,小B的数学基础很好并 ...
- ## (网易2018校招笔试)[编程题] 游历魔法王国
题目 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次. 如果小易到 ...
最新文章
- 如何匹配包含特定字符串的属性?
- 【控制】四旋翼无人机姿态角分析
- SAP固定资产期初导入检查
- 区块链基础知识系列 第四课Hyperledger fabric 1.0网络组成及构建流程
- 温州大学《深度学习》课程课件(九、目标检测)
- 3.1.11 OS之段页式存储管理(段表、页表、地址转换、)
- JAVA实现WC.exe功能
- 阿里云物联网MQTT三元数生成
- 在实际项目中使用LiteDB NoSQL数据库
- please reinstall the mysql distribution_php安装扩展mysqli的实现步骤及报错解决办法
- oracle11g的用户名是什么,oracle11g默认用户名和密码
- webmin安装_如何在Ubuntu 18.04上安装Webmin
- DateFormat与SimpleDateFormat区别和使用详解
- Ubuntu屏幕分辨率设置
- 【软技能】完全写作指南--个人博客
- 关于金融行业网络安全解决方案,您了解多少?
- 计算机双硬盘如何设置,电脑固态硬盘+机械硬盘双盘齐下的安装方法-双硬盘设置...
- 计算机替换的快捷键,Autointo Hotkey Changer电脑快捷键替换工具
- 新个人所得税计算公式
- Java线程死锁模拟
热门文章
- illumina的barcode居然有那么多类型
- 魅蓝和vivo怎么打开开发者选项或者打开usb调试(设置~关于本机~连续点击7次版本)
- 详解经典旋转目标检测算法RoI Transformer
- 互联网快讯:科大讯飞回应裁员传闻;极米Z6X Pro、极米H3S出色音画获好评;中国海油正式成立新能源分公司
- php px,px什么意思
- 如何访问IE历史记录
- js 批量移除steam游戏 移除用户凭证中免费获取的物品
- 程序员必读书单(转载)
- Linux小知识--原始套接字(raw socket)之模拟ping
- node.js毕业设计基于微信小程序点餐与结账系统LW(源码+程序+LW+部署)