• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 面试题:未排序等长数组,判断是否互为permutation

面试题:未排序等长数组,判断是否互为permutation

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了next permutation,permutation,next permutation函数,permutation test,permutation matrix等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:面试题: 未排序等长 数组, 判断是否互为 permutation
描述:

unsorted integer arrays A and B of equal size, determine if B is
permutation of A. 要求O(n) time and O(1) extra space.


解决方案1:

根据 @Chobits 的链接找到了另一个对应问题.

http://stackoverflow.com/questions/10639661/check-if-array-b-is-a-permutation-of-a

最高票的意思是, 弄一个长度为 2^32 的数组作为 hash table, 因为 2^32 是常数,,, 所以是 O(1)... 哭了...

解决方案2:

http://stackoverflow.com/questions/10929185/are-two-arrays-permutation-of-each-other

解决方案3:

首先O(1)的存储说明这题肯定是用比较校验值的方式。然后这题除了复杂度要求外,主要是两个要求:一是顺序无关,那么有些对顺序敏感的算法就可以放弃了。二是强无碰撞性。

所以我的方法是先读第一个数,进行md5「也可以选择其他摘要算法」后以整数或整数数组「看你用的语言是否自带大数库」的格式存入校验位。然后依次读后面的数并md5之后与校验位做异或将结果存入校验位。最后比较两数组的校验位即可。
我想了一下,估计是可以满足强弱无碰撞的,至于证明,我就真的不会了。


补充,上面异或的方式经过@brayden提醒是有缺陷的,那就改成求和忽略进位吧。每次求和后和(1<<256-1)求与,保留后256bit。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 面试题:未排序等长数组,判断是否互为permutation

相关文章

  • 2017-06-07 为什么在正则不加模式修正符的时候,PHP去匹配的中文字符会是乱码的
  • 2017-06-07 PythonDjangoxadmin可以对数据进行简单的逻辑处理嘛?
  • 2017-06-07 shell脚本问题
  • 2017-06-07 请问哪有java博客像博客园c#区一样的网站啊
  • 2017-06-07 (python)Mac安装MySQLdb时报错,所有过程都按照网上说的做的,还是报错,求大神帮助
  • 2017-06-07 使用qiniu的pythonsdk的时候提示import错误
  • 2017-06-07 如何用Jboss搭建SOA应用系统?
  • 2017-06-07 vba转access中图片列ole对象Package为二进制
  • 2017-06-07 七牛callback调试问题
  • 2017-06-07 关于官方提供的qrsb备份工具的使用

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • rubygems更换淘宝source的时候certificateverifyfailed
    • [求教]C++向Python脚本传递数组,Python回传处理结果亦为数组
    • 两个窗口打开同一个PHP文件为什么要等待其中一个窗口执行完?
    • python如何用post传递checkbox中的参数
    • 一个PHP正则的问题
    • redis关于redis主从配置的问题
    • 为什么我使用水煮鱼大大的插件后没有效果?
    • fileinput模块代码求解析
    • GitHub默认下载zip为什么是旧版本的tag?
    • macvagrantup启动问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有