7-14 电话聊天狂人 (25 分)map做法 + 详解 + 思路分析

7-14 电话聊天狂人 (25 分)map做法

1:题目

给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。

输入格式:
输入首先给出正整数N(≤10
​5
​​ ),为通话记录条数。随后N行,每行给出一条通话记录。简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔。

输出格式:
在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔。如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并列狂人的人数。

输入样例:
4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832
输出样例:
13588625832 3

2:思路分析

来看码的同学呀 一定要去学一下map容器,刷题刷到没用过的知识并且挺重要的就赶紧去学
用了map 容器 其实就没啥思路可分析的 ,这个容器太牛逼,存数据时已经将重复的元素个数累加好了 即最终状态是一个号码 对应一个 通话次数
但要注意的题目给的要求 如果有相同号码时需要比较大小, 我纠结了半天,想这一串数字字符串怎么比较大小呀? 但自己敲了个demo来验证 字符串的比较大小,才发现 原来是直接比较就可以不用纠结那么多

3:上码

#include<bits/stdc++.h>
using namespace std;int main(){int N,max = 0,count = 0;map<string,int>m;map<string,int>::iterator t;cin >> N;string maxid;for( int i = 0; i < N; i++ ){string str1,str2;cin >> str1 >> str2;m[str1]++;  //也就是m[str]代表的就是 键值  m[str2]++;	//如果遇到 相同的关键字 则 键值加一 if( m[str1] > max){max = m[str1];maxid = str1;} if( m[str2] > max ){max = m[str2];maxid = str2;}//	cout << m[str1] << ' ' << m[str2] << endl;		}for( t = m.begin(); t != m.end(); t++ ){if(t->second == max){count++;	}}if(count == 1){cout << maxid << ' ' << max;}else{for( t = m.begin(); t != m.end(); t++ ){if(t->second == max){cout << t->first <<' '<< max <<' '<< count;break;	}}	}}//4
//13005711862 13588625832
//13505711862 13005711862
//13588625832 13005711862
//15005713862 13588625832

在这里插入图片描述

4:上超时码

这个码我也要上,毕竟也是我努力的结果,敲码当中 最难受的事情了莫过于 你写的代码超时了,这就基本判定i你要重写了,毕竟你再怎么该也是原来的那个思路 时间复杂度不会降低多少的。
这个码用的是vector存的数据,只想说一句 我以前沉浸与vector的时代 宣告告一段落了 ,我要更加深入到map当中

//string 存的字符串
#include<bits/stdc++.h>
using namespace std;int cnt;int  repeat(vector<string>&v1,string a)
{for( int i = 0; i < v1.size(); i++){if( v1[i] == a)//判断两个字符串是否相等{cnt++;}}return cnt;
}int main()
{vector<string>v,v1;int N,max = 0,count = 0; string min = "9999999999";string str1,str2; cin >> N;for( int i = 0; i < 2 * N; i++ ){string str;cin >> str;v.push_back(str);}for( int i = 0; i < 2 * N; i++ ){cnt = 0;int temp = repeat(v,v[i]);if( temp > max ) //求电话狂人 {max = temp;str1 = v[i];}}    //求取有相同 通话次数的电话狂人    for( int j = 0; j < v.size(); j++ ){cnt = 0;int temp = repeat(v,v[j]);if( temp == max ) //求电话狂人 {v1.push_back(v[j]); }} //    for( int i = 0; i < v1.size(); i++)
//    cout << v1[i] << ' ';//去除 vector容器当中 重复的元素 sort(v1.begin(), v1.end());//unique(v1.begin(),v1.end()); //将重复的元素放到数组的最后面 v1.erase(unique(v1.begin(), v1.end()), v1.end());for( int j = 0; j < v1.size(); j++ ){if(v1[j] < min){min = v1[j];}}   //  cout << v1.size();// cout << count << endl;if( v1.size() == 1 )cout << str1 << ' ' << max;elsecout << min << ' ' << max << ' ' << v1.size();}

在这里插入图片描述

最后还是希望陌生的你 加油 !

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

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

相关文章

[Redis6]配置文件详解

配置文件 单位 配置大小单位,开头定义了一些基本的度量单位&#xff0c;只支持bytes&#xff0c;不支持bit 大小写不敏感 INCLUDES包括 类似jsp中的include&#xff0c;多实例的情况可以把公用的配置文件提取出来 网络相关配置 bind 默认情况bind127.0.0.1只能接受本机的…

JWT是个什么鬼?

【答疑解惑】| 作者 / Edison Zhou这是恰童鞋骚年的第269篇原创内容前面一篇我们了解了微服务安全认证架构是如何演进而来的&#xff0c;但是发现v2.5架构仍然较重&#xff0c;有没有轻量级一点的方法呢&#xff1f;其实业界早已有了实践&#xff0c;它就是基于JWT的安全认证架…

[Redis6]发布和订阅

Redis6的发布和订阅 什么是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 发布订阅命令行实现 打开一个客户端订阅channel1 打开另一个客户端&…

mysql innodb log_教你如何理解mysql中的innoDB log

前言:之前一直弄不清楚mysql里面bin log和innodb log文件的区别&#xff0c;在脑子里面一直有个疑问binlog日志文件已经可以用来进行数据库的日志备份恢复了&#xff0c;怎么又多了一个redo log文件了。相信也有很多人有这个疑惑&#xff0c;现在把整个过程文档整理出来&#x…

微服务框架Demo.MicroServer运行手册

一.背景说明&#xff1a;之前分享过一个微服务开发框架&#xff0c; “分享一个集成.NET CoreSwaggerConsulPollyOcelotIdentityServer4ExceptionlessApolloSkyWalking的微服务开发框架”&#xff0c;前两天在Github上收到一个Issues&#xff0c;是想我这边提供下完整的运行文档…

[Redis6]新数据类型_Bitmaps

Bitmaps 简介 现代计算机用二进制&#xff08;位&#xff09; 作为信息的基础单位&#xff0c; 1个字节等于8位&#xff0c; 例如“abc”字符串是由3个字节组成&#xff0c; 但实际在计算机存储时将其用二进制表示&#xff0c; “abc”分别对应的ASCII码分别是97、 98、 99&a…

mysql qps如何查看_一款查看mysql QPS的脚本

本脚本黏贴就可以使用绝对不坑人&#xff01;&#xff01;&#xff01;(此脚本来源如一位大神网友)执行效果&#xff1a;脚本&#xff1a;#!/bin/bashPWEqipay20150504mysqladmin -P3306 -uroot -p$PW -r -i 1 ext |\awk -F"|" \"BEGIN{ count0; }"\{ if($…

.Net Core 自定义配置源从配置中心读取配置

配置&#xff0c;几乎所有的应用程序都离不开它。.Net Framework时代我们使用App.config、Web.config&#xff0c;到了.Net Core的时代我们使用appsettings.json&#xff0c;这些我们再熟悉不过了。然而到了容器化、微服务的时代&#xff0c;这些本地文件配置有的时候就不太合适…

[Redis6]Bitmaps与set对比

Bitmaps与set对比 但Bitmaps并不是万金油&#xff0c; 假如该网站每天的独立访问用户很少&#xff0c; 例如只有10万&#xff08;大量的僵尸用户&#xff09; &#xff0c; 那么两者的对比如下表所示&#xff0c; 很显然&#xff0c; 这时候使用Bitmaps就不太合适了&#xff0c…

MySQL分布式ID_分布式唯一ID系列(3)——数据库自增ID机制适合做分布式ID吗

数据库自增ID机制原理介绍在分布式里面&#xff0c;数据库的自增ID机制的主要原理是&#xff1a;数据库自增ID和mysql数据库的replace_into()函数实现的。这里的replace数据库自增ID和mysql数据库的replace_into()函数实现的。这里的replace into跟insert功能类似&#xff0c;不…

7-15 QQ帐户的申请与登陆 (25 分)(map做法+思路分析)

一&#xff1a;题目 实现QQ新帐户申请和老帐户登陆的简化版功能。最大挑战是&#xff1a;据说现在的QQ号码已经有10位数了。 输入格式: 输入首先给出一个正整数N&#xff08;≤10 ​5 ​​ &#xff09;&#xff0c;随后给出N行指令。每行指令的格式为&#xff1a;“命令符&a…

[Redis6]新数据类型_HyperLogLog

HyperLogLog 简介 在工作当中&#xff0c;我们经常会遇到与统计相关的功能需求&#xff0c;比如统计网站PV&#xff08;PageView页面访问量&#xff09;,可以使用Redis的incr、incrby轻松实现。 但像UV&#xff08;UniqueVisitor&#xff0c;独立访客&#xff09;、独立IP数…

每天都在支付,你真的了解信息流和资金流?

作为一个财务类的产品经理&#xff0c;除了每天被财务“虐待”千百遍&#xff0c;还需要对整个资金流向很清楚&#xff1a;钱给谁&#xff0c;怎么给&#xff0c;怎么做逆向流程&#xff0c;谁参与容错等。财务很在意资金的流转安全&#xff0c;但又极不愿意花时间关注它。诸如…

mysql改表字段类型导致数据丢失_故障分析 | 记一次 MySQL 主从双写导致的数据丢失问题【转】...

一、问题起源不久前用户反馈部门的 MySQL 数据库发生了数据更新丢失。为了解决这个问题&#xff0c;当时对用户使用的场景进行了分析。发现可能是因为用户在两台互为主从的机器上都进行了写入导致的数据丢失。如图所示&#xff0c;是正常和异常情况下应用写入数据库的示例。随后…

[Redis6]新数据类型_Geospatial

Geospatial 简介 Redis 3.2 中增加了对GEO类型的支持。GEO&#xff0c;Geographic&#xff0c;地理信息的缩写。该类型&#xff0c;就是元素的2维坐标&#xff0c;在地图上就是经纬度。redis基于该类型&#xff0c;提供了经纬度设置&#xff0c;查询&#xff0c;范围查询&…

《Apache SkyWalking实战》送书活动结果公布

截至2020.07.31 本次送书活动 这么多Apache顶级项目&#xff0c;SkyWalking为何一枝独秀&#xff1f;&#xff0c;本次很多同学在看到活动的书&#xff0c;自行就到网上购买了书。下面把Top 8的留言截图给大家回顾一下。以下8位同学将获赠书籍一本&#xff1a;landon、田晓青、…

7-16 一元多项式求导 (20 分)(详解+题目分析)

7-16 一元多项式求导 (20 分) 1&#xff1a;题目 设计函数求一元多项式的导数。 输入格式: 以指数递降方式输入多项式非零项系数和指数&#xff08;绝对值均为不超过1000的整数&#xff09;。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和…

[MyBatisPlus]通用枚举

通用枚举 数据库表添加字段sex 创建通用枚举类型 package com.xxxx.mybatisplus.enums;import com.baomidou.mybatisplus.annotation.EnumValue; import lombok.Getter;Getter public enum SexEnum {MALE(1,"男"),FEMALE(2,"女");EnumValue // 将注解所标…

信创产业发展应不忘初心牢记使命

受国际大环境影响&#xff0c;信创市场国产化替代步伐已然加速。由于其中存在巨大的商机&#xff0c;信创市场中已然出现一些乱象。有的厂商拿洋技术标榜和宣传自主&#xff1b;有的厂商全国各地跑马圈地建产业园&#xff0c;进而向当地政府要政策要市场&#xff1b;有的厂商恶…

mysql采用 级触发_Mysql高级之触发器(trigger)

触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete)。看以下事件&#xff1a;完成下单与减少库存的逻辑Insert into o (gid,num) values (2,3); // 插入语句Update g set goods_num goods_num - 3 where id 2;// 更新…