df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

累计到上限的最后一人

中等 21-classic 面试经典题型 running-totalcutofftop-1

一辆车最多载重 1000。乘客按 turn 从小到大依次上车,求最后一个能上车的人。

  • 按 turn 升序累加体重,累计体重 ≤ 1000(恰好等于 1000 也能上)的乘客都能上车。
  • 一旦有人上不去,后面的人都不再上车,即使后面有人更轻、单独看还装得下。
  • turn 从 1 开始、互不重复,但输入行是乱序的;weight 都是正整数。
  • 如果第一个人就超重,没有人能上车,输出空表(保留列名)。

输入

  • queue(person_id, person_name, weight, turn)

输出

列为 person_id, person_name,最多一行。

输入表 (case base,共 3 个 case:base、exact、heavy_first)

queue local/base/queue
#person_idint64person_namestringweightint64turnint64
1 5 Alice 250 1
2 4 Bob 175 5
3 3 Alex 350 2
4 6 John Cena 390 3
5 1 Winston 500 6
6 2 Marie 200 4
7 7 Tiny 10 7
共 7 行

期望输出 (case base,行顺序不限)

#person_idInt64person_nameString
1 6 John Cena
共 1 行