25届-8.18DJI秋招(改编题)-开发

💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历

👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸

✨ 合集传送们 -> 🧷学长刷题笔记

🍒 本专栏已收集 140+ 套题 🍄 题面描述等均已改编,如果和你实际看到的题面描述不一样请理解,做法和题目本质基本不变。

🍹 感谢各位朋友们的订阅,你们的支持是我们创作的最大动力 💞

alt

1️⃣ 题面比较绕,读懂之后其实发现是个非常简单的哈希表的运用(读不懂的建议看样例猜做法)

2️⃣ 思维题,打表之后发现题目可以进行转换,有难度

🍒 01.智能仓储管理系统

问题描述

LYA 公司开发了一套智能仓储管理系统。每个仓库最多可存放 种不同的商品,每个仓库都有唯一的编号。系统会记录每次商品入库和出库时对应的仓库编号。在某个特定时刻,所有仓库都是空的。从那个时刻开始,系统记录了一段时间内所有商品入库和出库的仓库编号。现在 LYA 想知道在这段时间后,每个仓库的商品种类分布情况,即存放 种商品的仓库各有多少个?仓库编号最大为 ,商品入库和出库操作次数最大为

输入格式

行,第 行为商品入库的操作次数,第 行为按顺序记录有商品入库的仓库编号,第 行为商品出库的操作次数,第 行为按顺序记录有商品出库的仓库编号。

输出格式

依次输出存放 种商品的仓库数量,中间以空格隔开。

样例输入

15
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 
5
1 2 3 4 5

样例输出

0 5 0 0 0 0 0 0 0 0 0 0 0 0 0

数据范围

  • 仓库编号范围:
  • 操作次数范围:

题解

可以用哈希表记录每个仓库的商品数量。

首先统计入库操作,然后减去出库操作,最后统计各种商品数量的仓库个数。

时间复杂度为 ,其中 是操作总次数。空间复杂度为 是不同仓库的数量。

参考代码

  • Python
from collections import defaultdict

# 读取入库操作
n = int(input())
in_ops = list(map(int, input().split()))

# 读取出库操作
m = int(input())
out_ops = list(map(int, input().split()))

# 使用defaultdict统计每个仓库的商品数量
warehouse = defaultdict(int)

# 处理入库操作
for op in in_ops:
    warehouse[op] += 1

# 处理出库操作
for op in out_ops:
    warehouse[op] -= 1

# 统计不同商品数量的仓库个数
result = [0] * 16

# 遍历所有仓库,统计商品数量分布
for count in warehouse.values():
    if 1 <= count <= 15:
        result[count] += 1

# 输出结果
print(' '.join(map(str, result[1:])))
  • Java
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 读取入库操作
        int n = scanner.nextInt();
        int[] inOps = new int[n];
        for (int i = 0; i < n; i++) {
            inOps[i] = scanner.nextInt();
        }
        
        // 读取出库操作
        int m = scanner.nextInt();
        int[] outOps = new int[m];
        for (int i = 0; i < m; i++) {
            outOps[i] = scanner.nextInt();
        }
        
        // 使用HashMap统计每个仓库的商品数量
        Map<Integer, Integer> warehouse = new HashMap<>();
        
        // 处理入库操作
        for (int op : inOps) {
            warehouse.put(op, warehouse.getOrDefault(op, 0) + 1);
        }
        
        // 处理出库操作
        for (int op : outOps) {
            warehouse.put(op, warehouse.getOrDefault(op, 0) - 1);
        }
        
        // 统计不同商品数量的仓库个数
        int[] result = new int[16];
        
        // 遍历所有仓库,统计商品数量分布
        for (int count : warehouse.values()) {
            if (count >=

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏短期内不再更新,请勿继续订阅

全部评论
int move_dist = i + cnt - idx * 2 - 1; (计算当前1需要移动的距离) 代码与注释匹配吗
点赞 回复 分享
发布于 2024-08-20 10:57 上海

相关推荐

11-11 11:35
已编辑
字节跳动_字节hr
“面试官好,我之前在字节跳动实习过……”“您说的是字节跳动?”原本在低头圈画简历的三位面试官瞬间停了手,握着的笔顿在半空,会议室里只有键盘余温散出的微弱声响,都变得格外清晰。“就是那个靠算法推荐,把短视频和资讯信息流做到顶流的字节跳动?”我微微颔首,保持着平稳的语气:“嗯,主要在抖音后端研发团队实习,负责用户行为埋点链路优化、推荐策略效果迭代的工程落地,参与过流量峰值容灾方案设计和线上故障排查,把接口响应耗时压到了毫秒级。”其中一位面试官身体前倾,声音都亮了几分:“天啊!是那个做出抖音、TikTok,还把飞书、剪映做到行业标杆的字节跳动?”另一位面试官手忙脚乱摸出手机:“不好意思,我先拍个抖音,刚好想发条‘面到字节实习生’的动态蹭波流量。”话还没落地,最后一位面试官已经把一份写满薪资数字的&nbsp;offer&nbsp;意向书推到我面前:“现在就能签吗?股票期权随便谈,级别我们直接给你定到&nbsp;P6!”我抬眼扫过三人,礼貌而从容地回应:“Thank&nbsp;you&nbsp;very&nbsp;much&nbsp;for&nbsp;the&nbsp;offer.&nbsp;I&nbsp;still&nbsp;need&nbsp;to&nbsp;compare&nbsp;different&nbsp;opportunities,&nbsp;and&nbsp;I’ll&nbsp;get&nbsp;back&nbsp;to&nbsp;you&nbsp;once&nbsp;I’ve&nbsp;made&nbsp;my&nbsp;decision.”说完,我合上桌边一本印着&nbsp;“ByteDance”&nbsp;蓝色&nbsp;logo&nbsp;的笔记本,微笑点头后离开了会议室。走到走廊尽头时,我忍不住轻叹了口气:“唉,手里的&nbsp;offer&nbsp;都堆不下了,到底选哪个好呢?要是字节的技术口碑没这么硬就好了。”都看到这里了&nbsp;不投一下吗【字节跳动-校园招聘】内推链接:https://job.toutiao.com/s/KTaYC1Kvckg,内推码:MNW17D7。心脏和字节一起等你跳动~~~(通过此链接投递计入内推,内推简历优先筛选~)参考文献[1]&nbsp;&quot;老师好,我之前在蚂蚁集团实习过&quot;,&nbsp;国家一级产品交付工程师.[2]&nbsp;“面试官好,我之前在拼多多集团实习过……”,I_can_do_better.作者:I_can_do_better链接:https://www.nowcoder.com/来源:牛客网
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务