失效链接处理 |
vivo公司Java笔试面试 PDF 下载
本站整理下载:
相关截图:
主要内容:
小 v 是公司的运维工程师,现有一个有关应用程序部署的任务如下:
1、一台服务器的磁盘空间 磁盘空间、内存 内存是固定的,现在有 N 个应用程序要部署;
2、每个应用程序所需要的磁盘 磁盘 、 内存不同,每个应用程序 允许访问的用户数也不同,且同
一个应用程序不能在一台服务器上部署多个。
对于一台服务器而言,如何组合部署应用程序能够使得单台服务器允许访问的用户数最多?
import java.io.*;
import java.util.*;
/**
* Welcome to vivo !
*/
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = br.readLine();
String[] input = inputStr.split(" ");
int totalDisk = Integer.parseInt(input[0]);
int totalMemory = Integer.parseInt(input[1]);
List<Service> services = parseServices(input[2].split("#"));
int output = solution(totalDisk, totalMemory, services);
System.out.println(output);
}
private static int solution(int totalDisk, int totalMemory, List<Service> services) {
// TODO Write your code here
int len = services.size();
int[][][] dp = new int[len + 1][totalDisk + 1][totalMemory + 1];
for(int i = 1; i <= len; i++)
for(int j = totalDisk; j > 0; j--)
for(int k = totalMemory; k > 0; k--){
if(j >= services.get(i - 1).getDisk() && k >= services.get(i - 1).getMemory()){
dp[i][j][k] = Math.max(dp[i - 1][j][k],
dp[i - 1][j - services.get(i - 1).getDisk()][k - services.get(i -
1).getMemory()]
+ services.get(i - 1).getusers());
}else{
dp[i][j][k] = dp[i - 1][j][k];
}
}
return dp[len][totalDisk][totalMemory];
}
private static List<Service> parseServices(String[] strArr) {
if (strArr == null || strArr.length == 0) {
return new ArrayList<Service>(0);
}
List<Service> services = new ArrayList<>(strArr.length);
for (int i = 0; i < strArr.length; i++) {
String[] serviceArr = strArr[i].split(",");
int disk = Integer.parseInt(serviceArr[0]);
int memory = Integer.parseInt(serviceArr[1]);
int users = Integer.parseInt(serviceArr[2]);
services.add(new Service(disk, memory, users));
}
return services;
}
static class Service {
private int disk;
private int memory;
private int users;
public Service(int disk, int memory, int users) {
this.disk = disk;
this.memory = memory;
this.users = users;
}
public int getDisk() {
return disk;
}
public void setDisk(int disk) {
this.disk = disk;
}
public int getMemory() {
return memory;
}
public void setMemory(int memory) {
this.memory = memory;
}
public int getusers() {
return users;
}
public void setusers(int users) {
this.users = users;
}
}
}
小 v 在 vivo 手机的应用商店中下载了一款名为“一维消消乐”的游戏,介绍如下:
|