zoukankan      html  css  js  c++  java
  • 1204. Last Person to Fit in the Elevator

    Table: Queue

    +-------------+---------+
    | Column Name | Type |
    +-------------+---------+
    | person_id | int |
    | person_name | varchar |
    | weight | int |
    | turn | int |
    +-------------+---------+
    person_id is the primary key column for this table.
    This table has the information about all people waiting for an elevator.
    The person_id and turn columns will contain all numbers from 1 to n, where n is the number of rows in the table.
     

    The maximum weight the elevator can hold is 1000.

    Write an SQL query to find the person_name of the last person who will fit in the elevator without exceeding the weight limit. It is guaranteed that the person who is first in the queue can fit in the elevator.

    The query result format is in the following example:

    Queue table
    +-----------+-------------------+--------+------+
    | person_id | person_name | weight | turn |
    +-----------+-------------------+--------+------+
    | 5 | George Washington | 250 | 1 |
    | 3 | John Adams | 350 | 2 |
    | 6 | Thomas Jefferson | 400 | 3 |
    | 2 | Will Johnliams | 200 | 4 |
    | 4 | Thomas Jefferson | 175 | 5 |
    | 1 | James Elephant | 500 | 6 |
    +-----------+-------------------+--------+------+

    Result table
    +-------------------+
    | person_name |
    +-------------------+
    | Thomas Jefferson |
    +-------------------+

    Queue table is ordered by turn in the example for simplicity.
    In the example George Washington(id 5), John Adams(id 3) and Thomas Jefferson(id 6) will enter the elevator as their weight sum is 250 + 350 + 400 = 1000.
    Thomas Jefferson(id 6) is the last person to fit in the elevator because he has the last turn in these three people.

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/last-person-to-fit-in-the-elevator
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    # Write your MySQL query statement below

    select t1.person_name from Queue t1 where 
    (
    (select sum(weight) from Queue t2 where t2.turn<=t1.turn)<=1000
     and  (select sum(weight) from Queue t2 where t2.turn<=t1.turn+1)>1000  )
     or 
     ( (select sum(weight) from Queue)<=1000  and t1.turn = (select max(turn) from Queue) )
  • 相关阅读:
    Python 之 编程中常见错误
    Python 列表(数组)初识
    Python 字符串处理
    QT学习笔记三 窗口类型
    C++ Primer第五版学习笔记十 引用与指针
    C++ Primer第五版学习笔记九 变量及初始化,声明和定义,作用域
    angularf封装echarts
    记录npm yarn安装遇到的问题
    网页中嵌入google地图
    og协议-有利于SNS网站分享
  • 原文地址:https://www.cnblogs.com/leeeee/p/11902039.html
Copyright © 2011-2022 走看看