LeetCode 1418. 点菜展示表(哈希map)

1. 题目

给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。

请你返回该餐厅的 点菜展示表
在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。
接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应当填对应的桌号,后面依次填写下单的餐品数量。

注意:客户姓名不是点菜展示表的一部分。此外,表中的数据行应该按餐桌桌号升序排列。

示例 1:
输入:orders = [["David","3","Ceviche"],
["Corina","10","Beef Burrito"],
["David","3","Fried Chicken"],
["Carla","5","Water"],
["Carla","5","Ceviche"],
["Rous","3","Ceviche"]]
输出:
[["Table","Beef Burrito","Ceviche","Fried Chicken","Water"],
["3","0","2","1","0"],
["5","0","1","0","1"],
["10","1","0","0","0"]] 
解释:
点菜展示表如下所示:
Table,Beef Burrito,Ceviche,Fried Chicken,Water
3    ,0           ,2      ,1            ,0
5    ,0           ,1      ,0            ,1
10   ,1           ,0      ,0            ,0
对于餐桌 3:David 点了 "Ceviche""Fried Chicken",而 Rous 点了 "Ceviche"
而餐桌 5:Carla 点了 "Water""Ceviche"
餐桌 10:Corina 点了 "Beef Burrito" 示例 2:
输入:orders = [["James","12","Fried Chicken"],
["Ratesh","12","Fried Chicken"],
["Amadeus","12","Fried Chicken"],
["Adam","1","Canadian Waffles"],
["Brianna","1","Canadian Waffles"]]
输出:
[["Table","Canadian Waffles","Fried Chicken"],
["1","2","0"],
["12","0","3"]] 
解释:
对于餐桌 1:Adam 和 Brianna 都点了 "Canadian Waffles"
而餐桌 12:James, Ratesh 和 Amadeus 都点了 "Fried Chicken"示例 3:
输入:orders = [["Laura","2","Bean Burrito"],["Jhon","2","Beef Burrito"],["Melissa","2","Soda"]]
输出:[["Table","Bean Burrito","Beef Burrito","Soda"],["2","1","1","1"]]提示:
1 <= orders.length <= 5 * 10^4
orders[i].length == 3
1 <= customerNamei.length, foodItemi.length <= 20
customerNamei 和 foodItemi 由大小写英文字母及空格字符 ' ' 组成。
tableNumberi 是 1500 范围内的整数。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/display-table-of-food-orders-in-a-restaurant
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {
public:vector<vector<string>> displayTable(vector<vector<string>>& orders) {unordered_map<string,map<string,int>> m;//桌号,菜,数量vector<vector<string>> food = {{"Table"}};//表头vector<string> tableId;//桌号for(auto& od : orders){m[od[1]][od[2]]++;tableId.push_back(od[1]);//桌号food[0].push_back(od[2]);//菜品}sort(tableId.begin(), tableId.end(),[&](auto a, auto b){if(a.size()==b.size())return a < b;return a.size() < b.size();});//桌号排序tableId.erase(unique(tableId.begin(),tableId.end()), tableId.end());//桌号去重sort(food[0].begin()+1, food[0].end());//菜品排序food[0].erase(unique(food[0].begin()+1, food[0].end()), food[0].end());//菜品去重food.resize(tableId.size()+1);//开辟空间for(int i = 1; i < food.size(); ++i){food[i].push_back(tableId[i-1]);//第一列,桌号for(int j = 1; j < food[0].size(); ++j)food[i].push_back(to_string(m[food[i][0]][food[0][j]]));//其余列数量}return food;}
};

984 ms 90.2 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入分析驴子系列(2)

在 BOOL CemuleApp::InitInstance() 函数 的 672行&#xff08;VERIFY( (m_hTimer ::SetTimer(NULL, NULL, 300, StartupTimer)) ! NULL ); &#xff09; 启动一个定时器 在该定时器的 执行函数&#xff08; void CALLBACK CemuleDlg::StartupTimer(HWND /*hwnd*/, UINT /*uiM…

python现在时间 命令_Python3 - 时间处理与定时任务

1.计算明天和昨天的日期#! /usr/bin/env python#codingutf-8# 获取今天、昨天和明天的日期# 引入datetime模块import datetime#计算今天的时间today datetime.date.today()#计算昨天的时间yesterday today - datetime.timedelta(days 1)#计算明天的时间tomorrow today dat…

LeetCode 1419. 数青蛙(脑洞题)

1. 题目 给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 “croak” &#xff09;的组合。 由于同一时间可以有多只青蛙呱呱作响&#xff0c;所以 croakOfFrogs 中会混合多个 “croak” 。 请你返回模拟字符串中所有蛙鸣所需不同青蛙的…

MYSQL性能优化(转)

MySQL 服务器调优 最近帮人维护一个DZ论坛&#xff0c;总结如下几个调优技巧&#xff0c;让 MySQL 服务器飞速运行有 3 种方法可以加快 MySQL 服务器的运行速度&#xff0c;效率从低到高依次为&#xff1a;1.替换有问题的硬件。2.对 MySQL 进程的设置进行调优。3.对查询进行优化…

python报IndentationError: unexpected indent的解决方法.

问题描述&#xff1a; python语言对缩进非常敏感&#xff0c;一般都是四个空格 一个tab&#xff0c;但是很多时候我们会忽视这个问题。导致两者混用或者少写空格容易出现这样的问题。问题解决&#xff1a;找到指定代码行&#xff0c;重新书写&#xff01;下面的with open则是明…

termux配置python安装kali_安卓安装kali linux之Termux

解决安装kali无模组问题步骤1.获取root环境需要下载proot直接在命令行里输入pkg install proot&#xff0c;下完以后输入命令termux-chroot获取root环境2.获取git &#xff0c;因为需要在github上下载atilo&#xff0c;atilo的作用是atilo是github上的一个开源工具&#xff0c;…

LeetCode 466. 统计重复个数(循环节)

1. 题目 由 n 个连接的字符串 s 组成字符串 S&#xff0c;记作 S [s,n]。例如&#xff0c;["abc",3]“abcabcabc”。 如果我们可以从 s2 中删除某些字符使其变为 s1&#xff0c;则称字符串 s1 可以从字符串 s2 获得。例如&#xff0c;根据定义&#xff0c;“abc”…

aspnet_regsql

aspnet_regsql 使SQL支持会话状态 aspnet_regsql -S localhost -U sa -P password -ssadd -sstype p 其中&#xff1a;-sstype有三个值&#xff1a;t,p,c(详细说明可使用 aspnet_regsql -? 命令查看) 使数据库支持SQL Server高速缓存禁用功能 aspnet_regsql -S localhost -U …

AcWing之找出数组中重复的数字

题目 给定一个长度为 n 的整数数组 nums&#xff0c;数组中所有的数字都在 0∼n−1 的范围内。 数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 注意&#xff1a;如果某些数字不在 0…

python绘制数字23_Python 画数码数字8

import turtlesize 10line 40# 拿出笔pen turtle.Pen()pen.pensize(size)pen.pencolor("blue")turtle.tracer(False) # 不跟踪动画pen.penup()pen.forward(size)pen.pendown()pen.forward(line)pen.penup()pen.forward(size)pen.pendown()pen.left(90)pen.penup()…

LeetCode 303. 区域和检索 - 数组不可变(前缀和)

1. 题目 给定一个整数数组 nums&#xff0c;求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和&#xff0c;包含 i, j 两点。 示例&#xff1a; 给定 nums [-2, 0, 3, -5, 2, -1]&#xff0c;求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRang…

timer控件的使用

拖拉过去后,双击timer,进入timer2_Tick事件,写入代码后, 改timer属性 interval为1 enabled为true 转载于:https://www.cnblogs.com/zzh1236/archive/2008/12/17/1356435.html

AcWing之找出不改变数组找到重复的数字

题目 给定一个长度为 n1 的数组nums&#xff0c;数组中所有的数均在 1∼n 的范围内&#xff0c;其中 n≥1。请找出数组中任意一个重复的数&#xff0c;但不能修改输入的数组。样例 给定 nums [2, 3, 5, 4, 3, 2, 6, 7]。 返回 2 或 3。思考题&#xff1a; 如果只能使用 O(1) …

DELPHI之备忘(二)

1. DLL的资源释放问题 EXITPROC//*******************//释放资源//*******************var dllExit: Pointer;procedure MyExit;begin//资源释放 ExitProc : dllExit;end;//******************************//创建资源//******************************begin // 资源创建 Exi…

LeetCode 307. 区域和检索 - 数组可修改(树状数组)

1. 题目 给定一个整数数组 nums&#xff0c;求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和&#xff0c;包含 i, j 两点。 update(i, val) 函数可以通过将下标为 i 的数值更新为 val&#xff0c;从而对数列进行修改。 示例: Given nums [1, 3, 5] sumRange(0, 2) -> …

python地理_【Python教程】地理可视化

Matplotlib是Python常用的数据绘制包&#xff0c;其绘图功能强大&#xff1b;而Basemap则是Matplotlib的一个子包&#xff0c;负责地图绘制。本文简单介绍如何利用该程序包绘制风向图。具体操作如下&#xff1a;导入命令1)设置工作环境并导入程序包%cd "F:\\Dropbox\\pyth…

部署windows服务

写好了windows服务以后&#xff0c;再切换到设计页面&#xff0c;右键点击添加安装程序&#xff0c;点击后自动给你添加上一个安装组件&#xff0c;再设置下serviceProcessInstaller1组件的属性&#xff08;在设计器中设置&#xff0c;不在代码中&#xff09;&#xff0c;其中有…

LeetCode 327. 区间和的个数(multiset二分查找/归并排序)

文章目录1. 题目2. 解题2.1 动态规划超时2.2 二分查找2.3 归并排序1. 题目 给定一个整数数组 nums&#xff0c;返回区间和在 [lower, upper] 之间的个数&#xff0c;包含 lower 和 upper。 区间和 S(i, j) 表示在 nums 中&#xff0c;位置从 i 到 j 的元素之和&#xff0c;包…

AcWing之二维数组的查找

题目 在一个二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。 请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。样例 输入数组&#xff1a; [ [1,2,8,9]&…

sql server排序慢_SQL 查询调优之 where 条件排序字段以及 limit 使用索引的奥秘

(给数据分析与开发加星标&#xff0c;提升数据技能)作者&#xff1a;风过无痕-唐www.cnblogs.com/tangyanbo/p/6378741.html奇怪的慢sql我们先来看2条sql第一条&#xff1a;select * from acct_trans_log WHERE acct_id 1000000000009000757 order by create_time desc limit…