时间限制:1秒 空间限制:32768K 热度指数:923
本题知识点: Java工程师 C++工程师 快手 动态规划 贪心
算法知识视频讲解
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
题目描述

有重量分别为3,5,7公斤的三种货物,和一个载重量为X公斤的箱子(不考虑体积等其它因素,只计算重量)

需要向箱子内装满X公斤的货物,要求使用的货物个数尽可能少(三种货物数量无限)

输入描述:

输入箱子载重量X(1 <= X <= 10000),一个整数。

输出描述:

如果无法装满,输出 -1。
如果可以装满,输出使用货物的总个数。

示例1
输入

4

输出

-1

说明

无法装满

示例2
输入

8

输出

2

说明

使用1个5公斤,1个3公斤货物

题目链接(牛客网)

思路:动态规划,小于8的直接特判,定义数组dp,索引代表箱子重量,dp的值代表货物的数量,值等于int的最大值时,代表无法装满。只考虑装最后一个货物,则dp[i]=min(dp[i-3],dp[i-5],dp[i-7])+1;

代码:


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Main
{public static void main(String[] args) {int max=Integer.MAX_VALUE;Scanner sc=new Scanner(System.in); int x=sc.nextInt();if(x<8){if(x==3||x==5||x==7)System.out.println(1);else if(x==6)System.out.println(2);elseSystem.out.println(-1);}else{int[] dp=new int[x+1];dp[3]=1;dp[5]=1;dp[7]=1;dp[1]=max;dp[2]=max;dp[4]=max;dp[6]=2;for(int i=8;i<=x;i++){int temp=max(dp[i-3],dp[i-5],dp[i-7]);if(temp==max)dp[i]=max;elsedp[i]=temp+1;}if(dp[x]==max)System.out.println(-1);elseSystem.out.println(dp[x]);}}private static int max(int i, int j, int k) {if(i<=j&&i<=k)return i;if(j<=i&&j<=k)return j;if(k<=j&&k<=i)return k;return -1;}}

快手校招真题-最少数量货物装箱问题(动态规划)相关推荐

  1. 快手校招面试题 最少数量货物装箱问题

    题目 链接:https://www.nowcoder.com/questionTerminal/37aa8a88a72e47f798a14d63bee61d8f?toCommentId=3433244 ...

  2. java动态规划装箱问题,最少数量货物装箱问题

    题目描述: 最少数量货物装箱问题_牛客网 有重量分别为3,5,7公斤的三种货物,和一个载重量为X公斤的箱子(不考虑体积等其它因素,只计算重量) 需要向箱子内装满X公斤的货物,要求使用的货物个数尽可能少 ...

  3. 最大公共子串----快手校招真题

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:2101 本题知识点: 算法工程师 快手 字符串 动态规划 算法工程师 快手 2019 算法知识视频讲 ...

  4. 牛客网 2018校招真题 京东 回文

    Description 牛客网 2018校招真题 回文 Solving Ideas 计算以str[str.length() - 1]为结尾的最大的回文长度,从而判断最少需要追加多少个字母才能使整个串成 ...

  5. 牛客网——2017校招真题在线编程(pythonC++)

    牛客网--2017校招真题在线编程(python&C++) 1.n个数里的最小k个 题目描述 找出n个数里最小的k个 输入描述: 每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n ...

  6. 200 道算法面试题集锦!Python 实现,含华为、BAT 等校招真题!

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法. ...

  7. 拼多多2018年校招真题

    拼多多2018年校招真题 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出 ...

  8. 牛客网 2018校招真题 美团点评 K的倍数

    Description 牛客网 2018校招真题 K的倍数 Solving Ideas sum[i + 1]: 表示序列p[0]...p[i]的和 从长度最大的子串开始判断,当剩余需要判断子串长度不可 ...

  9. 牛客网 2018校招真题 摩拜 排序次数

    Description 牛客网 2018校招真题 排序次数 Solving Ideas 将数组a的元素拷贝到数组b 对数组b进行排序 对比数组b,统计数组a中已排序的元素个数 如:a = [2, 11 ...

最新文章

  1. Java 中的注解是如何工作的?
  2. 计算机网络的拓扑结构主要有新型,计算机网络中主要拓扑结构有 ______。
  3. jQuery选择器的效率问题
  4. 一个电脑同时运行 64bit 和 32bit 的eclipse 如何匹配 jdk环境
  5. 极致CMS个人博客企业官网模板
  6. qt程序中使用 环境变量_目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU...
  7. python没有上方工具栏_PyQt5快速上手基础篇8-菜单栏、工具栏和状态栏
  8. signature=cb97f07fbd7b371e6311b0d8707b6398,vue 汉字转拼音(filter)
  9. WebSocket使用sendObject(Object arg0)向页面方法发送对象
  10. 软件项目需求调研报告模板下载_需求调研规范
  11. 二维联合分布的密度函数计算
  12. 2020年10款网盘大比拼,总有一款适合你
  13. npm install 报错 this command with --force, or --legacy-peer-deps
  14. python0不能做除数、怎么解决_为什么0不能作为除数?真正的原因是……
  15. [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
  16. 美国博士后J1签证北京面签经过
  17. 数字信号处理专题(1)——DDS函数发生器环路Demo
  18. Mysql数据库root密码管理四法
  19. 【LittleVGL】stm32f412-discovery探索板-ft6x06驱动问题
  20. django - celery

热门文章

  1. 简单二阶滤波器截止频率的计算
  2. 【LeetCode】1710.卡车上的最大单元数
  3. C中格式化输出%lf,输出为保留6位小数的数。
  4. 元宇宙对网络技术的挑战,什么样的网络才能承载元宇宙的野心?
  5. 中国联通CP/SP合作管理办法
  6. 阿里月薪50k招数据分析师,这个要求过分吗?
  7. 使用了eclipse10年之后,我终于投向了IDEA
  8. Notepad-- Windows版本安装、简单体验
  9. MySQL varchar(255) 和 varchar(256) 区别
  10. 量变到质变--技术的爆发或许就在20年之间