时间限制: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. 695.岛屿的最大面积
  2. mysql 列出表_[MySQL优化1]centos中MySQL列出所有表
  3. 静观接入网易云信IM的秀品,如何在圣诞让她们疯狂剁手
  4. Go 使用 JSON
  5. HTTP Session 的工作原理以及几个思维扩展
  6. 【poj 2891】Strange Way to Express Integers(数论--拓展欧几里德 求解同余方程组 模版题)...
  7. Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer
  8. MES系统软件如何在数控加工车间应用?
  9. 主成分分析在生命科学研究中的应用
  10. LabView实验——温度检测系统(实验学习版)
  11. SQLServer安装Northwind数据库
  12. Word中英语音标出现乱码情况,解决办法
  13. 文件夹内批量修改文件名称
  14. MATLAB课设代做在哪儿找,代写Grid World作业、代做CID留学生作业、代写Matlab课程设计、代做Matlab编程实验作业...
  15. PostgreSQL透明数据加密
  16. pta 机工士姆斯塔迪奥(C语言实现)
  17. edge 临时文件夹 位置_如何更改Microsoft Edge的下载文件夹的位置
  18. Havij 1.152 最新破解版
  19. 7.4. Combining Queries
  20. 怎么修复计算机硬件,Win10有哪些硬件诊断工具 硬件出现问题如何查看修复

热门文章

  1. 电脑通过android手机上网 .
  2. webpack和webpack-cli的关系
  3. java springboot微信公众号接收回复消息和超过5秒被动回复消息
  4. 新兴顶级双非大学,计算机系毕业情况如何?
  5. 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序
  6. 烟台中学2021年高考成绩查询,烟台中学排名前十名,2021年烟台中学排名一览表
  7. USF MSDS501 计算数据科学中文讲义 2.2 在内存中表示数据
  8. 棋牌游戏运营框架思路
  9. 中国生态足迹与生物承载力数据(1961-2016年)
  10. 蓝牙的ATT协议(属性协议)和GATT协议