统计数组中重复的数字(java)(例题:假票问题(Fake Ticket))

该博客介绍了一种使用Java解决统计假票数量的方法。通过读取输入的门票数据,找出重复的数字并记录,最终输出伪造的门票数。算法核心在于遍历数组并检查重复项,将重复数据进行二次比对,以确定真正的重复次数。
摘要由CSDN通过智能技术生成

问题描述:

舞会收到很多假票。要求编写程序,统计所有门票中存在假票的门票数。

输入:

输入文件中包含多个测试数据。每个测试数据占两行。

第1行为两个整数N和M,分别表示发放门票的张数和参加晚会的人数(1 <= N <= 10000 , 1 <= M <= 20000)。

第2行为M个整数Ti,为收到的M张门票的号码(1 <= Ti <= N)。

最后一个输入N = M = 0代表输入结束。

输出:

对每个输入测试数据,你的程序要输出一行,为一个整数,表示有多少张票被伪造过。

示例:

输入:

5 5
3 3 1 2 4
6 10
6 1 3 6 6 4 2 3 1 2
0 0

输出:

1
4

思路:

题目本质是找数组中有几种重复数据的问题,因此只需要在常规的“判断数据重复”结构上加一次和之前已经记录过的重复数据的比对就好了

解法:

创建数组b用于记录重复的数字,遍历数组,判断当前数字与数组中的其他数字是否重复,如果重复,再判断是否和数组b中已经记录过的重复数字重复,如果不重复则将当前数字存入数组b同时将重复数字变量加1

具体代码实现:

import java.util.Scanner;
public class Main
{
	public static void main(
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值