永发信息网

算法问题,怎么判断几个数同时相等?忽略顺序,如2 2 3 5和5 2 3 2相等。如果想到排序后比

答案:3  悬赏:30  手机版
解决时间 2021-03-27 00:59
算法问题,怎么判断几个数同时相等?忽略顺序,如2 2 3 5和5 2 3 2相等。如果想到排序后比
最佳答案
开一个计数数组vis[i],一开始清零,然后输入第一个数列,每输入一个数x,就vis[x]++。这样vis[i]代表i这个数字出现的次数。然后输入第二个数列,每输入一个数x,就vis[x]--,处理过程中检查vis[x]是不是负数,如果是则说明两个数列不相等,处理完之后,若vis[i]中全为0,说明相等。时间复杂度O(N),空间复杂度O(maxnum)
当数据的数值范围不大的时候可以使用这个方法。追问你的想法和我一样, 但我就觉得这种方法除了效率问题, 还有一定局限性, 如果是浮点或字符串等其它数据类型, 可能就比较麻烦. 如果能生成一种类似md5之类的"指纹", 但数字顺序不影响结果, 那就完美了追答浮点或者字符串的话的确没办法,只能用集合最小表示法来搞,也就是排序,另外MD5这个就算数列不同算出来的结果也是可能相同的哦~
你的问题实际上就是一个离散问题,用离散的方法来解决应该是最好的了。追问之前不知道怎么把这个问题表述清楚, 现在想想其实就是判断两个集合相等的问题, 刚刚网上搜了一下, 也没找到期望的算法, 先结了, 谢谢问答追答你这个和集合还有点不一样,你的问题里面还允许有相同的数字出现吧
全部回答
先冒泡法排序,然后按数组顺序挨个比较
用for循环嵌套,第一个设置为循环遍历前一个数组,每次记录一个数a[i];内层循环遍历后一个数组,把得到的数与a[i]比较如果相同就回到外层循环
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
柳州市是广西的工业城市,为了让我们柳州市的
怎么做一个合格的17k书评管理员,我不能让六
电梯平层感应器的工作原理和在电气原理图中的
上面是个倒上,下面是个倒七打一成语
21岁了还可以读书吗
英伟达g210,能玩lol吗?
使用一次性筷子危害究竟有多大
我爸爸前几天骑自行车横过马路时,被对面驶来
阴宅寅申甲庚风水如何
有没有类似《生命的备件》的galgame,不要h,
避暑山庄古建筑简介
下雪了 应该说什么样的情话?亲们
嘻唰唰汽车美容中心在什么地方啊,我要过去处
在建筑中HM表示什么?
阜阳闻集镇治安太乱
推荐资讯
促排过后多久可以取卵
做板式家具的利润是多少
苷类根据是生物体内原存的,还是次生的分为
名字算命,是算总笔画吗
有10个笔盒,其中有5个装有铅笔,4个装有钢笔
有干部在灾难其间倒卖粮食该怎办?
怎样做销售呢,也就是说怎样跑市场呢?
执行利剑郑怀山被判多少年
12加上36除以4的商求和怎么写?
19岁的我抽哪种烟好~~要10块钱左右的,硬盒
房贷37万,20年计算,月供是多少?每月都一样
乌拉哈乌拉乡中心校新风小学地址在哪,我要去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?