标题:[提问]检查2个数组是否内容相同
只看楼主
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
结帖率:100%
已结贴  问题点数:20 回复次数:9 
[提问]检查2个数组是否内容相同
2个长度相同的整型数组
判断是否都是相同元素 元素次序不同
比如 [1,2,3,4][4,2,3,1]判断为相同数组

不知道有什么简单点的方法可以处理这个问题
搜索更多相关主题的帖子: 数组 是否 提问 相同 检查 
2020-04-02 17:18
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:10 
异或一次

能编个毛线衣吗?
2020-04-02 17:40
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:10 
先将两个数组按大小顺序排序,然后逐个比较数组中元素是否相同,遇到不同的就跳出输出不相等。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-04-02 17:48
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用wmf2014在2020-4-2 17:40:04的发言:

异或一次

哈哈哈 和我想一样 和我错一样
我就说不会只有我一个人掉坑里的
这样做有陷阱

猜猜看是什么

https://zh.
2020-04-02 17:59
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用纯蓝之刃在2020-4-2 17:48:02的发言:

先将两个数组按大小顺序排序,然后逐个比较数组中元素是否相同,遇到不同的就跳出输出不相等。

这样的确能得到正确结果
如果有更好的办法就好了
我想多了解一些新的思路

https://zh.
2020-04-02 17:59
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
对0不异或,或者既异或又求和,反正O(n)解决。主要陷阱是元素单边成对,和或差就不同。

[此贴子已经被作者于2020-4-2 18:26编辑过]


能编个毛线衣吗?
2020-04-02 18:13
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 6楼 wmf2014
和有没有异或0 没关系
异或加求和也不行
按照目前这个题目 O(n)算法可能是陷阱
目前我没找到一个合适的O(n)算法处理
比如
[2,2,5,5]
[3,3,4,4]
你求和也好 异或也好
都会认为是相同数组
实际上不是

异或需要额外多一个条件
数组元素不能重复
我之前也是忘记考虑这种特殊情况

https://zh.
2020-04-02 18:25
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
回复 6楼 wmf2014
见6楼修改后的回复

能编个毛线衣吗?
2020-04-02 18:29
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用wmf2014在2020-4-2 18:29:08的发言:

见6楼修改后的回复

修改后还是没解决
[2,2,5,5][3,3,4,4]
判定失败呀

https://zh.
2020-04-02 18:30
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
要不乘,为防止溢出,元素相乘模一个固定的数,元素相同则余数肯定相等。
实在不行,把偶数个数,3、5、7倍数的个数都统计一下,差不多是md5加密的碰撞概率了。
还有一个方法是:元素统一加一个相同数,异或一次右移一次,直到所有元素为0每次异或都相等则相同,不过不是O(n)了。

[此贴子已经被作者于2020-4-2 19:19编辑过]


能编个毛线衣吗?
2020-04-02 18:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500819-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.151653 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved