快手简单背包笔试题 最少数量货物装箱问题

本文探讨了一种使用动态规划解决最优装载问题的方法,针对一个载重量为X的箱子,如何利用重量分别为3,5,7公斤的三种货物,使箱内货物重量恰好等于X且货物数量最少。通过构建动态规划算法,实现对任意X的有效求解。

题目描述

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

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

 

输入描述:

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

输出描述:

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

示例1

输入

4

输出

-1

说明

无法装满

 

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 100100;
int dp[N];
const int nums[] = {3,5,7};
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<=n;i++) dp[i]=-1;
    dp[3] = 1;
    dp[5] = 1;
    dp[7] = 1;
    for(int i=6;i<=n;i++){
        int temp = N;
        for(int j=0;j<3;j++){
            if(i-nums[j]>=0 && dp[i-nums[j]]!=-1)
                temp = min(temp,dp[i-nums[j]]+1);
        }
        if(temp!=N)
            dp[i] = temp;
    }
    cout<<dp[n]<<endl;
}

 

### 关于快手 SQL 笔试题 针对快手相关的 SQL 笔试题,虽然无法提供具体的题目和答案,但可以基于常见的 SQL 考察知识点来推测可能涉及的内容。以下是几个典型的 SQL 题目及其解答思路: #### 1. 数据查询与过滤 假设有一张名为 `user_activity` 的表,记录用户的活动数据,字段括 `user_id`, `activity_date`, 和 `points_earned`。 **问题**: 查询在过去7天内获得超过100积分的用户ID列表。 ```sql SELECT DISTINCT user_id FROM user_activity WHERE activity_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND points_earned > 100; ``` 此查询利用了日期函数 `DATE_SUB` 来计算过去七天的时间范围,并通过条件筛选出符合条件的用户[^2]。 #### 2. 统计分析 假设有另一张表 `video_views`,含视频观看次数的数据,字段有 `video_id`, `view_count`, 和 `upload_date`。 **问题**: 计算每个月上传的视频总数以及平均观看量。 ```sql SELECT YEAR(upload_date) AS year, MONTH(upload_date) AS month, COUNT(video_id) AS total_videos, AVG(view_count) AS avg_view_per_video FROM video_views GROUP BY YEAR(upload_date), MONTH(upload_date); ``` 这里使用了聚合函数 `COUNT` 和 `AVG` 进行统计,并按年份和月份分组以展示每月的结果[^3]。 #### 3. 复杂连接操作 如果存在两张关联表:一张是 `users` (字段: `id`, `name`);另一张是 `orders` (字段: `order_id`, `user_id`, `amount`)。 **问题**: 找到下单金额最高的前五位客户的名字及总消费额。 ```sql SELECT u.name, SUM(o.amount) as total_spent FROM users u JOIN orders o ON u.id = o.user_id GROUP BY u.name ORDER BY total_spent DESC LIMIT 5; ``` 这段代码实现了两表之间的 JOIN 操作,并按照客户的总花费降序排列取前五个结果[^4]。 --- ### 提交简历后的等待时间差异原因探讨 关于提到的行业选择情况,在某些情况下确实会出现职位挂载现象用于未来的人力资源规划目的。这表明即使当前岗位需求不紧迫也可能接受应聘者的资料存档以便后续联系[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值