Leetcode刷题:2021-07-06每日一题 - 点菜展示表
2023-11-10 04:44:01
你好,欢迎来到我的博客,今天我们来讨论一下LeetCode的2021-07-06每日一题——点菜展示表。
题目
给你一个数组orders,表示客户在餐厅中完成的订单,确切地说,orders[i]=[customerNamei,tableNumberi,foodItemi]。
- customerNamei是客户的姓名
- tableNumberi是客户所在的桌子号
- foodItemi是客户点的菜品
请你返回按餐桌号升序排列的点菜展示表。对于相同餐桌号的客户,按客户姓名升序排列。
示例 1
输入:orders = [["David","3","Ceviche"],["Corina","10","Beef Burrito"],["David","3","Fried Chicken"],["Carla","5","Pasta"],["Carla","5","Pizza"],["David","3","Fried Chicken"],["Carla","5","Taco"]]
输出:[["Carla","5","Pasta"],["Carla","5","Pizza"],["Carla","5","Taco"],["Corina","10","Beef Burrito"],["David","3","Ceviche"],["David","3","Fried Chicken"],["David","3","Fried Chicken"]]
解释:
点菜展示表按餐桌号升序排列。
对于餐桌号为5的订单,按客户姓名升序排列。
示例 2
输入:orders = [["James","12","Fried Chicken"],["Ratesh","12","Fried Chicken"],["Amadeus","12","Fried Chicken"],["Adam","1","Canadian Waffles"],["Brianna","1","Canadian Waffles"]]
输出:[["Adam","1","Canadian Waffles"],["Brianna","1","Canadian Waffles"],["Amadeus","12","Fried Chicken"],["James","12","Fried Chicken"],["Ratesh","12","Fried Chicken"]]
解释:
对于餐桌号为1的订单,按客户姓名升序排列。
对于餐桌号为12的订单,按客户姓名升序排列。
解法
我们可以使用SQL语句来解决这个问题。首先,我们需要创建一个临时表来存储订单信息,然后使用该临时表来生成点菜展示表。
-- 创建临时表
CREATE TEMP TABLE Orders (
customerName TEXT,
tableNumber INTEGER,
foodItem TEXT
);
-- 将订单数据插入临时表
INSERT INTO Orders (customerName, tableNumber, foodItem)
VALUES
("David", 3, "Ceviche"),
("Corina", 10, "Beef Burrito"),
("David", 3, "Fried Chicken"),
("Carla", 5, "Pasta"),
("Carla", 5, "Pizza"),
("David", 3, "Fried Chicken"),
("Carla", 5, "Taco"),
("James", 12, "Fried Chicken"),
("Ratesh", 12, "Fried Chicken"),
("Amadeus", 12, "Fried Chicken"),
("Adam", 1, "Canadian Waffles"),
("Brianna", 1, "Canadian Waffles");
-- 生成点菜展示表
SELECT *
FROM Orders
ORDER BY tableNumber ASC, customerName ASC;
结果
+-------------+--------------+---------+
| customerName | tableNumber | foodItem |
+-------------+--------------+---------+
| Adam | 1 | Canadian Waffles |
| Brianna | 1 | Canadian Waffles |
| Amadeus | 12 | Fried Chicken |
| James | 12 | Fried Chicken |
| Ratesh | 12 | Fried Chicken |
| Carla | 5 | Pasta |
| Carla | 5 | Pizza |
| Carla | 5 | Taco |
| Corina | 10 | Beef Burrito |
| David | 3 | Ceviche |
| David | 3 | Fried Chicken |
| David | 3 | Fried Chicken |
+-------------+--------------+---------+
总结
这就是LeetCode 2021-07-06每日一题——点菜展示表的解法。希望对你有所帮助。
感谢你的阅读,如果你有任何问题,请随时留言。