DAU 统计,日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。 需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。

来源:互联网 发布:13.3英寸笔记本知乎 编辑:程序博客网 时间:2024/04/19 20:23
DAU 统计
时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 32768KB;其他语言 557056KB
题目描述:
日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。
需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。
每个用户可能访问多次。
为了方便,我们用数字 (uid) 唯一标识每个用户。
输入
每一行包含一个 uid,遇到 0 时认为输入结束。
输入共包含 N+1 行,可认为是无序的。
输出
一个数字:去重后 uid 的数量 M。


样例输入
12933
111111
59220
69433
59220
111111
0
样例输出
4


Hint
数据范围
0 < uid < 2^63
对于 30% 的数据,0 < N < 100,000, 0 < M < 100,000

对于 100% 的数据,0 < N < 1,000,000, 0 < M < 800,000

package com.main;import java.util.HashSet;import java.util.Scanner;import java.util.Set;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Set<Long> uidSet = new HashSet<Long>();Long element;while ((element = sc.nextLong()) != 0) {if (element == 0) {sc.close();return;}uidSet.add(element);}if(uidSet != null && uidSet.size() > 0){System.out.println(uidSet.size());}/*System.out.println("---------遍历方法1-----------------");Iterator<Long> it = uidSet.iterator();while (it.hasNext()) {System.out.println(it.next());}System.out.println("------------遍历方法2---------------");for(Long num :uidSet){System.out.println(num);}*/sc.close();}}
12933
111111
59220
69433
59220
111111
0
4


0 0
原创粉丝点击