首页 > 其他分享 >1817.查找用户活跃分钟数

1817.查找用户活跃分钟数

时间:2023-06-13 16:57:39浏览次数:37  
标签:1817 logs 用户 分钟 活跃 查找 answer ID

问题描述

1817. 查找用户活跃分钟数 (Medium)

给你用户在 LeetCode 的操作日志,和一个整数 k 。日志用一个二维整数数组 logs 表示,其中每个 logs[i] = [IDᵢ, timeᵢ] 表示 ID 为 IDᵢ 的用户在 timeᵢ 分钟时执行了某个操作。

多个用户 可以同时执行操作,单个用户可以在同一分钟内执行 多个操作

指定用户的 用户活跃分钟数(user active minutes,UAM) 定义为用户对 LeetCode 执行操作的 唯一分钟数 。 即使一分钟内执行多个操作,也只能按一分钟计数。

请你统计用户活跃分钟数的分布情况,统计结果是一个长度为 k下标从 1 开始计数 的数组 answer ,对于每个 j1 <= j <= k), answer[j] 表示 用户活跃分钟数 等于 j 的用户数。

返回上面描述的答案数组 answer

示例 1:

输入:logs = [[0,5],[1,2],[0,2],[0,5],[1,3]], k = 5
输出:[0,2,0,0,0]
解释:
ID=0 的用户执行操作的分钟分别是:5 、2 和 5 。因此,该用户的用户活跃分钟数为 2(分钟 5 只计数一次)
ID=1 的用户执行操作的分钟分别是:2 和 3 。因此,该用户的用户活跃分钟数为 2
2 个用户的用户活跃分钟数都是 2 ,answer[2] 为 2 ,其余 answer[j] 的值都是 0

示例 2:

输入:logs = [[1,1],[2,2],[2,3]], k = 4
输出:[1,1,0,0]
解释:
ID=1 的用户仅在分钟 1 执行单个操作。因此,该用户的用户活跃分钟数为 1
ID=2 的用户执行操作的分钟分别是:2 和 3 。因此,该用户的用户活跃分钟数为 2
1 个用户的用户活跃分钟数是 1 ,1 个用户的用户活跃分钟数是 2
因此,answer[1] = 1 ,answer[2] = 1 ,其余的值都是 0

提示:

  • 1 <= logs.length <= 10⁴
  • 0 <= IDᵢ <= 10⁹
  • 1 <= timeᵢ <= 10⁵
  • k 的取值范围是 [用户的最大用户活跃分钟数, 10⁵]

解题思路

哈希表 + 模拟

代码

class Solution {
public:
    vector<int> findingUsersActiveMinutes(vector<vector<int>>& logs, int k) {
        unordered_map<int, unordered_set<int>> mp;
        for (auto &vec : logs) {
            mp[vec[0]].insert(vec[1]);
        }
        unordered_map<int, int> mins;
        int num = mp.size();
        vector<int> ans(k, 0);
        for (auto iter = mp.begin(); iter != mp.end(); iter++) {
            mins[(iter->second).size()]++;
        }
        for (int i = 0; i < k; i++) {
            if (mins.find(i + 1) != mins.end())
                ans[i] = mins[i + 1];
            else
                ans[i] = 0;
        }
        return ans;
    }
};

标签:1817,logs,用户,分钟,活跃,查找,answer,ID
From: https://www.cnblogs.com/zwyyy456/p/17478100.html

相关文章

  • 微信公众号开发C#系列-5、用户和用户组管理-支持同步
    本文目录1、概述2、本地存放微信粉丝与分组的表结构3、主要接口实现方式3.1、同步指定用户到本地3.2、一键同步所有用户到本地4、关注与取消关注时自动同步本地用户情况4.1、订阅(关注)时的处理4.2、取消关注时的处理5、用户分组管理5.1、创建分组5.2、修改分组5.3、删除分组5.4、查......
  • 373. 查找和最小的 K 对数字 (Medium)
    问题描述373.查找和最小的K对数字(Medium)给定两个以升序排列的整数数组nums1和nums2,以及一个整数k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自nums2。请找到和最小的k个数对(u₁,v₁),(u₂,v₂)...(uₖ,vₖ)。示例1:输入:nums1......
  • uniapp开发公众号H5时用户缓存无法清除问题
     业务场景:  此项目是一个vx公众号h5项目,每次更新版的时候用户端由于有缓存,每次都是使用滞后的版本解决方案:一、index.html文件如何保证不缓存,每次都使用服务器上最新的代码?此时需要一下标签:<metahttp-equiv="Cache-Control"content="no-cache,no-store,must-revali......
  • 碎片化时代,别让用户费脑子
    正文字数:2018 阅读时长:4分钟本次讲师采访我们邀请到了本次LiveVideoStackCon2020北京站的讲师,摩象科技的技术总监刘智美来做采访,作为互联网的从业者,尤其是专注于服务内容生产领域的专家,这篇采访我想从一个最近大家比较关注的事件引出。9月29日消息,昨日晚间23时59分,腾讯微博......
  • stream(流) 查找方法
    stream(流)查找方法StreamAPI提供了allMatch、anyMatch、noneMatch、findFirst和findAny方法importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;importjava.util.Optional;importjava.util.stream.Collectors;importjava.util.stream.Stream;public......
  • 记录一次查找文件中何处使用制表符(tab)
    尝试一直接在编辑器中显示不可见字符,看了半天也没有找到尝试二在vi中打开目标文件使用命令:setlist,制表符显示成^I,换行符显示成$直接输入/\t快速定位到制表符,此时可以输入n继续查找下一个查找结束,再输入setnolist......
  • Latex编译器推荐(面向初学者或者懒得折腾的朋友,主要针对windows用户)
    原文链接:https://blog.sciencenet.cn/blog-478347-1215384.html大家平时用的最多的排版工具想必就是Microsort的Word或者WPS了,所见即所得,Latex是另外一种排版工具,需要编译才可以生成pdf。相信大家在投稿的时候,会发现很多杂志都提供的textemplate。至于Latex好还是word好,这个已......
  • 提升用户体验:在小程序环境中充分利用Ionic框架
    Ionic是一个用于构建跨平台移动应用程序的开源框架。它结合了HTML、CSS和JavaScript等技术,帮助开发者创建具有原生应用体验的移动应用程序。Ionic提供了一套用户界面组件和工具,可用于构建高度交互和美观的移动应用界面。 Ionic基于Angular框架,利用Angular的能力来构建复杂的......
  • 尚医通day09-【用户平台搭建详细步骤】(内附源码)
    页面预览首页医院详情第01章-服务器端渲染和客户端渲染1、搜索引擎优化1.1、什么是搜索引擎优化SEO是网站为了获得更多的流量,对网站的结构及内容进行调整和优化,以便搜索引擎(百度,google等)更好抓取到网站的内容,提高自已的网站排名。1.2、搜索引擎工作流程1.3、简单的S......
  • win10系统开启同时多用户远程连接桌面,支持22H2,版本10.0.19041.2075
    1.打开远程桌面控制并开启多用户连接1)win+r打开运行窗口,输入gpedit.msc,进入“本地组策略编辑器”2)按以下步骤找到远程桌面会话主机:计算机配置-->管理模板-->Windows组件-->远程桌面服务-->远程桌面会话主机-->连接 3)编辑远程桌面会话主机连接 3.1)双击“允许用户通......