首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

判断一个数是否40亿个整数

最近看到一道经典面试题: 40亿的unsigned int数据(乱序),给定一个数字target, 判断该target是否存在于这40亿的数据?...准备工作: 如下代码随机生成[1, 2147483648)的整数集保存在D盘根目录下a.txt,生成数据(一一个整数)之后(约占磁盘40G),用代码再统计一下生成的数字有3999999040(嗯?...计算机,bitmap是用作某个值(例如: 给定范围的整数),映射为位(bit), 也被叫做位数组或位图)。...比如使用上述第二种方法bufferedreader按读取即可, 时间复杂度也是O(n)。...当然我认为bitmap是如下的场景下会更适用些(请注意题目的约束条件这里描述了大致意思): 文件中有40亿个互不相同的QQ号码,请设计算法对QQ号码进行排序 文件中有40亿个互不相同的QQ号码,求这些

1.2K40

2023-05-01:给你一个整数 n , 请你无限的整数序列 找出并返回

2023-05-01:给你一个整数 n ,请你无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...找出并返回第 n 位上的数字。...2.实现函数 findNthDigit,其输入为整数 n,表示要查找的数字整数序列的位置。根据 under 数组,找到包含第 n 个数字的区间长度 len,并返回调用子函数 number 的结果。...计算下一个节点的路径 cur*(all/offset)+path,并递归地调用 number 函数。...4. main 函数,定义一个整数变量 n 表示要查找的数字整数序列的位置,调用 findNthDigit 函数查找第 n 个数字,并输出结果。...时间复杂度和空间复杂度如下:1.findNthDigit 函数的循环需要遍历数组 under,时间复杂度为 O(1) 平均时间复杂度为 O(log n);number 函数实现了一个递归结构,每次递归除去常数项的时间复杂度为

39300
您找到你想要的搜索结果了吗?
是的
没有找到

如何判断一个数是否 40 亿个整数

今天他就去BAT的一家面试了。 简单的自我介绍后,面试官给了小史一个问题。 【面试现场】 ? ? 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否40亿个整数,你会怎么做? ?...小史:我想想……哦,这样做的话,因为每台机器都可以一次性把数据读入内存,比较的时候不用来回加载数据了,所以可以节省加载数据的开销!这真是个好办法。...来了一个新的数,怎么判断是否40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...小史:意思是我把整个整数范围都覆盖了,哦,对哦。这样一来,就可以做了,1代表第一个位,2代表第二个位,2的32次方代表最后一个位。40亿个数,存在的数就在相应的位置1,其他位就是0。 ?...首先,32位int的范围是42亿,40亿整数中肯定有一些是连续的,我们可以先对数据进行一个外部排序,然后用一个初始的数和一个长度构成一个数据结构,来表示一段连续的数,举个例子。

83670

【面试现场】如何判断一个数是否40亿个整数

小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT。 ? 今天他就去BAT的一家面试了。 简单的自我介绍后,面试官给了小史一个问题。...题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否40亿个整数,你会怎么做? ? ? ? ? ? ? ? ? ? ? ?...小史:我想想……哦,这样做的话,因为每台机器都可以一次性把数据读入内存,比较的时候不用来回加载数据了,所以可以节省加载数据的开销!这真是个好办法。...来了一个新的数,怎么判断是否40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...小史:意思是我把整个整数范围都覆盖了,哦,对哦。这样一来,就可以做了,1代表第一个位,2代表第二个位,2的32次方代表最后一个位。40亿个数,存在的数就在相应的位置1,其他位就是0。 ?

62860

定义一个函数,该函数可以实现任意两个整数的加法。java实现

题目:定义一个函数,该函数可以实现任意两个整数的加法。 对于这道题,由于没有限定输入的两个数的范围,我们要按照大数问题来处理。...由于题目是要求实现任意两个整数的加法,我们就要考虑如何实现大数的加法。此外这两个整数是任意的,所以也有可能存在负数。通常对于大数问题,常用的方法就是使用字符串来表示这个大数。...我们可以首先将两个整数分别用字符串来表示,然后分别将这两个字符串拆分成对应的字符数组。当两个整数都是正数的时候直接相加结果为正数,同为负数的时候取两者的绝对值相加然后结果前加一个负号。...假若是一正一负,则用两者的绝对值相减,用绝对值大的数减去绝对值小的数,当正数的绝对值大的时候相减的结果为正数,当负数的绝对值大的时候相减的结果为负数,结果为负数时相减的结果前加一个负号即可。...具体进行相加的时候两个字符数组对应的数字字符相加即可,当有进位的时候做出标记,更高一位进行相加时再将这个进位加进去。同样相减的时候有借位的也做出标记,更高一位相减的时候将这个借位算进去。

1.9K20

Python2和Python3的区别和代码转换

UTF-8 3.python3.x舍弃了长整型 python2.x:有长整型long python3.x:long整数类型被废弃,统一为int 4.打印函数的语法变化 python2.x:print...函数的输入内容类型为字符串 input()函数的输入内容类型为输入字符的类型 6.键盘读取输入方面 Python3保留input()函数,且输入数据全部作为字符串处理; Python2...还支持row_input()函数,input()函数处理输入数字的过程,若输入的数字加引号,则作为字符串处理,否则当作数字处理。...9.next()和.next()函数 Python2对两个函数均支持 Python3支持next()函数。...它读取 Python2.x 源代码,并应用了一系列的修复将它转变成有效的 Python3.x 代码; 如:2to3 -w test.py。

48900

python字符串编码

python3.x,把字符串变成了unicode,文件默认编码为utf-8。这意味着,只要用python3.x,无论我们的程序以那种语言开发,都可以全球各国电脑上正常显示。   ...(补充一个问题,python3.x,只要把unicode编码,字符串就会变成了bytes格式,也不直接打印成gbk的字符,我觉得就是想通过这样的方式明确的告诉你,想在python3.x中看字符串,必须是...解决办法一个是将源代码的编码也改成gbk,也就是代码第一改成:     # -*- coding: gbk -*-   另一种方法是保持源码文件的utf-8不变,而是’哈哈’前面加个u字,也就是:...最早的计算机设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。...-8编码的一部分,所以,大量支持ASCII编码的历史遗留软件可以UTF-8编码下继续工作。

2K10

编程好习惯

= / 除 python2.x整型触发返回整数 python3.x整型触发返回浮点数,整除使用// 加入了nonlocal语句 去除了print语句,加入了print()函数 print("zutuanxue_com....x 字符串以16bit Unicode字符串存储,现在字符串只有str一种类型 5、数据类型 python3.x去除了long类型,现在只有一种整数类型int,但是它的行为就像2.xlong...xrange()python3.x名为range() file类被废弃 python2可以使用file(path)、open(path) 二、PEP8编码规范 网址: 英文教程:https://...否则不要使用单字母的变量名,但是即使lamdba函数变量名也要尽可能有意义 包名、模块名、函数名全部使用小写,单词使用下划线链接 类名、异常名使用首字母大写的方法,异常名结尾加Error或者Warning...块注释 一段逻辑开始时注释 引入外来算法或者配置时必须在注释添加源链接,标明出处 函数和类尽量添加docstring 4、空格 :,;后面要跟一个空格,前面没有空格,行尾分号无需空格

20620

Python-练习5

= 3628800,所以答案为2; - 输入描述: 输入为一,n(1 ≤ n ≤ 1000) - 输出描述: 输出一个整数,即题目所求 - 示例1: - 输入:     10 - 输出:     ...- 输入描述: 有多组测试样例,每组测试样例包含两,第一一个整数N(N<=100),第二包含N个数(每个数不超过1000,空格分开)。 - 输出描述: 每组数据输出一个表示最大的整数。...现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。...这里有4种把B插入A的办法: * A的第一个字母之前: "baba" 不是回文 * 一个字母‘a’之后: "abba" 是回文 * 字母‘b’之后: "abba" 是回文 * 第二个字母'a'...第一为字符串A 第二为字符串B 字符串长度均小于100且包含小写字母 - 输出描述: 输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数 - 示例1 - 输入     aba

68810

Python3学习笔记 | 五、Python的类型与运算-字符串(下)

Python,表达式和内置函数可能在不同范围的类型有效,但方法通常特定于对象类型,例如,字符串方法仅适用于字符串对象。...属性读取: Object.attribute格式的表达式可以理解为“读取object对象的属性attribute值” 函数调用表达式: 具有函数(参数)格式的表达式意味着“调用函数代码,传递零或者更多用逗号隔开的参数对象...这两者合并可以让我们调用一个对象方法。..., 进行相应的替换,这个python2.x和python3.x完全不同。...(后面会讲元组) 1、格式化代码(typecode) s 字符串(或任何对象) r 与s一样,但输出方式是repr方式,而不是str c 字符 d 十进制(整数) i 整数 u 无号整数 o 八进制整数

47730

25代码实现完整的RSA算法

25代码实现完整的RSA算法 python3.X版本的请点击这里25代码实现完整的RSA算法   网络上很多关于RSA算法的原理介绍,但是翻来翻去就是没有一个靠谱、让人信服的算法代码实现,即使有代码介绍...还有我发现对于“大整数的幂次乘方取模”竟然采用直接计算的幂次的值,再取模,类似于(2 ^ 1024) ^ (2 ^ 1024),这样的计算就直接去计算了,我不知道各位博主有没有运行他们的代码???...这么说吧,把全宇宙的物质都做成硬盘都放不下,更何况你的512M内存的电脑。所以我说他们的代码可远观而不可亵玩已。   ...这个时候很多同学就不干了,说为什么我在网上看到的很多RSA理论都特别多,都分很多个章节,每个章节,都有好多个屏幕才能显示完,这么多的理论,想想怎么也得上千代码才能实现,怎么到了你这里25就搞定了呢...很多博客选取p和q的时候都是使用10000以内的质数,象征性地给大家演示一下,把问题说明白,结果在计算的时候就偷懒了,直接把幂次计算出来。这个明显偷懒了,没有把问题说明白。

37620

Python花式编程案例集锦(9):sorted()函数消失的cmp参数

很久很久很久以前,公众号曾经推送过这样一篇文章Python组合列表多个整数得到最小整数一个算法的巧妙实现)。也就是,对于列表的若干整数,求这些整数前后连接能够组成的最小的整数。...上面实际上就是一代码计算结果,为了方便阅读,才换了很多行。虽然代码简短了很多,但是对Python函数式编程要有一定了解才能看懂。那么就再来个暴力点的代码吧,在所有排列组成的整数查找最小整数: ?...但是上面的代码时间复杂度有点高啊,毕竟要计算全排列,有没有更好的办法呢?下面代码最初版本由浙江温州永嘉县教师发展中心应根球老师提供。...思路倒推容易得到,最终结果的最小整数的排列,交换任意两个数字得到的数字都会使得结果变大。...但是问题又来了,Python 3.x,内置函数sorted()和列表方法sort()都取消了cmp参数而保留了key参数,key参数指定的函数只能接收一个参数而在Python 2.x的cmp参数指定的函数可以接收两个参数

91930

深入浅析Python2.x和3.x版本的主要区别

版本说明 Python 3.0设计的时候没有考虑向较早版本相容 Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python...' str = u"我爱北京天安门" str u'u6211u7231u5317u4eacu5929u5b89u95e8' 除法运算 单斜杠/,Python2整数相除得整数,浮点小数相除得浮点...repr Python2双反引号“可以替代repr函数,Python3去掉了双反引号的表是方法,只能用repr方法 模块改名 StringIO模块现在被合并到新的io模组内。...long类型 Python2long是比int取值范围更大的整数,Python3取消了long类型,int的取值范围扩大到之前的long类型范围 bytes类型 Python3新增了bytes类型...您可能感兴趣的文章: Python2.X/Python3.Xurllib库区别讲解 Python2.x与Python3.x的区别 把项目从Python2.x移植到Python3.x的经验总结 编写同时兼容

70551
领券