| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2241 人关注过本帖
标题:[提问]检查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
帖 子:570
专家分:3727
注 册: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
快速回复:[提问]检查2个数组是否内容相同
数据加载中...
 
   



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

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