首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

判断个数是否在40亿个整数中?

最近看到道经典面试题: 在40亿的unsigned int数据中(乱序),给定个数字target, 判断该target是否存在于这40亿的数据中?...准备工作: 如下代码随机生成[1, 2147483648)的整数集保存在D盘根目录下a.txt,生成数据(整数)之后(约占磁盘40G),用代码再统计下生成的数字有3999999040(嗯?...使用set集合add操作,将40亿的数据次性加载进内存,然后只需要使用contains方法判断target是否存在即可 问题: 个unsigned int的元素,需要占4B的空间,按照最坏的打算,40...在计算机中,bitmap用作某个值(例如: 给定范围的整数),映射为位(bit), 也被叫做位数组或位图)。...): 判断给定的target是否存在于数据集中 public boolean exist(long target) { return (arr[(int)(target / 64) ] & (1L

1.2K40

如何判断个数是否在 40 亿个整数中?

今天他就去BAT中的家面试了。 简单的自我介绍后,面试官给了小史个问题。 【面试现场】 ? ? 题目:我有40亿个整数,再给个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? ?...小史:哦,对哦,这样我就申请40亿个位就好了,新的数转换成个位,然后判断下这个位0还是1就行了。 吕老师:小史啊,考虑问题要考虑清楚啊,如果40亿个位,那么这40亿个位哪些0,哪些1呢?...来了个新的数,怎么判断是否在40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...小史:意思我把整个整数范围都覆盖了,哦,对哦。这样来,就可以做了,1代表第个位,2代表第二个位,2的32次方代表最后个位。40亿个数中,存在的数就在相应的位置1,其他位就是0。 ?...首先,32位int的范围42亿,40亿整数中肯定有连续的,我们可以先对数据进行个外部排序,然后用个初始的数和个长度构成个数据结构,来表示段连续的数,举个例子。

83670

js原生判断是否数字类型

大家好,又见面了,我你们的朋友全栈君。...js判断数字类型汇总 最近在写代码的时候,有些逻辑需要判断数字类型,等用到的时候才发现自己了解的方法不太严密,然后就决心查资料汇总了解下有哪些方法比较严密 第种:typeof + isNaN 使用typeof...可以判断是否个数字类型,但是NaN也是数字类型,为了筛除这个可能,进步通过isNaN来筛除。...isNaN(num) } 第二种:typeof + isFinite 使用typeof可以判断是否个数字类型,但是NaN和Infinity也是数字类型,为了筛除这个可能,进步通过isFinite来筛除...function isNumber(num) { return num === +num } 第六种:正则表达式(最推荐的种) function isNumber(num) { return /

9.5K20

如何判断个数据分布是否正太分布?

在数据分析过程中,得到组数据,在分析之前,通常需要判断数据是否符合正态分布与否,再决定下步分析方法。那么,如何判断数据是否属于正太分布呢?...其中种方法就是画出正太分位数图,用以判断数据是否数据正太分布。 什么正太分位数图呢? 将个正态分布的数据集的数据从小到大排序,求每个值在样本中出现的概率,再累积画出如下图。...如下图个均值为5.5的正太分布累计概率图。在开始和结束的位置概率增长率最小,在均值处概率增长率最大。 ? 上图中,如果将开始和结束的位置坐标轴拉长,可以将这条曲线转化得到条直线。...再需要判断数据是否属于正太分布式,如果数据分布在两条虚线之间,则可以认为数据数据正太分布的。否则,不是正态分布。 -----END-----

1.8K20

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

题目:我有40亿个整数,再给个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? ? ? ? ? ? ? ? ? ? ? ?...小史:哦,对哦,这样我就申请40亿个位就好了,新的数转换成个位,然后判断下这个位0还是1就行了。 吕老师:小史啊,考虑问题要考虑清楚啊,如果40亿个位,那么这40亿个位哪些0,哪些1呢?...来了个新的数,怎么判断是否在40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...小史:意思我把整个整数范围都覆盖了,哦,对哦。这样来,就可以做了,1代表第个位,2代表第二个位,2的32次方代表最后个位。40亿个数中,存在的数就在相应的位置1,其他位就是0。 ?...首先,32位int的范围42亿,40亿整数中肯定有连续的,我们可以先对数据进行个外部排序,然后用个初始的数和个长度构成个数据结构,来表示段连续的数,举个例子。

62460

面试官:判断个数是否为2的整数次幂

题目 判断个正整数是否2的整数幂(如42的2次方,返回true;5不是2的整数次幂,则返回false)。要求性能尽可能高。...第种考虑(乘法) 创建个中间变量temp,初始值1,然后进入个循环,每次循环都让temp和目标值进行比较,如果相等,则说明目标2的整数次幂,如果不相等,则让temp乘以2,继续循环比较,直到temp...第三种考虑(位运算) 让我们看看2的整数次幂转成二进制是什么样的 十进制 二进制 是否为2的整数次幂 8 1000 16 10000 32 100000 64 1000000 100 1100100...否 是不是发现了,如果整数2的整数次幂,那么当它转化成二进制时,只有最高位1,其它位都是0!...十进制 二进制 原数值减1 是否为2的整数次幂 8 1000 111 16 10000 1111 32 100000 11111 64 1000000 111111 100 10000000

1K20

判断个数是否对称数(数组非数组解法)

非数组法: 核心:将个数从左到右倒过来(倒序)变成新数,判断是否与原来的数相同 难点:倒叙输出无法满足形成新数 scanf("%d",&n); while(n) { print("%d",n%10);...= n * 10 + x; m/=10; } if (n == mx) { printf("%d对称数 ", mx); } else printf("想得美"); return...0; } 注意点:代码中为了保存原数值不被改变,采用了创建个新变量来备份的方式(2,4) 数组法: 核心:将个数存入数组中,通过逐个比较首尾元素,进行判断 难点:1.要控制数组拿位置的循环,同时也要控制...scanf("%d", &a); int ma = a;//备份 if (a< 10)//对称数起码二位数 { return 0; } for (i = 0; i < 1000; i...arr[tail]) { flag = 0;//若更改为0,不是对称数 2 break; } tail--; } if (flag == 1) printf("%d对称数

9110

如何判断个数是否为素数(判断个数为素数)

大家好,又见面了,我你们的朋友全栈君。 目录 1.什么质数? 2.如何判断是否为质数? 方法1 方法2 方法3 方法4 1.什么质数?...2.如何判断是否为质数? 质数的特点如下: 个自然数(如1、2、3、4、5、6等)若恰有两个正约数(1及此数本身),则称之为质数。...方法1 根据质数的约数只有1和本身这特点,可以首先想到最直观的方法。第种方法就是判断个数是否能被比它小的数整除。 方法1的时间复杂度O(n)。...2和其他偶数/奇数的积,因此个数不能被2整除,那么这个数定不能被其他偶数整除。...可以对整数进行筛选,只判断那些6x-1或6x-1的整数是否为质数。

1.4K30

Python判断输入的字符串是否整数还是小数

1.今天遇到个问题如果输入的字符串还是整数或者小数如何将他们区分 首先isdigit()只能用来判断字符串输入的是否整数,无法判断是否小数 所以,先判断该字符串是否整数,如果返回3,            ...不是的话说明字母或者小数,然后判断是否小数,如果小数的话返回1,            字母的或其他的话返回2 def is_float(i):     if i.isdigit():#只能用来判断整数的字符串...[-1]  # 将小数分为小数点右边             left = new_i[0]  # 小数点左边             if right.isdigit():  # 如果小数点右边数字判断小数点左边...:         return False 更简单的判断方法: while  True:     num = input("请输入个数字:")     try:         n1=eval...:')         continue     else:         print("输入的整数没问题")

36020

PHP判断个变量是否整数、正整数的方法示例

在PHP中判断个变量是否整数 在写PHP代码的时候遇到这样个小问题:如何判断个变量是否整数,于是在网上找到了两个方法来解决,在此做个小小的记录。 方法1 <?...这里用is_int()方法来判断传入的参数是否整数形(int),而不是判断是否整数,略显局限。 方法2 <?...php判断个变量是否为正整数 方法: if(preg_match("/^[1-9][0-9]*$/" ,$amount)){ die('整数'); } 方法二: $ num = '45 .7'...== 0){ exit(“ 不是正整数!”); } else { exit(“ 整数!”)...== false){ die(“ 不是整数”); } else { die(“ 整数”); } 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有定的参考学习价值,谢谢大家对

5K20

判断个数是否相同

php中判断个数是否相同 , 如果关联数组 , 可以直接使用==来进行判断 $c=array("a"=>"12"); $d=array("a"=>"12"); var_dump($c==$d);/.../true 如果索引数组 , 可以使用array_diff来进行判断: if( !...array_diff($arr2, $arr1)){ // 即相互都不存在差集,那么这两个数组就是相同的了,多数组也样的道理 return true; } array_diff(array1..., array2); 不管这两个数是否相同都有可能返回的空数组,因为它只返回 array_diff(array1,array2,array3...); 该函数比较两个(或更多个)数组的值(key=...>value 中的 value),并返回个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的值。

4.4K30

Python判断个数是否为素数

前言本文转自 Python学习日记 – 素数判断扶木成枫 – 生命的绽放​fmcf.cc​fmcf.cc对于个数是否为素数,常规的方法就是 2、5、7、11、13、17 来试验,可是这样的方法仅在 1000...以下的数有较高正确率,就在想,有没有种绝对正确并且不使用 Python 其它模块的方法来判断素数,毕竟有了 Python 数学模块,素数的判断就变得很简单了,但是引入个数学模块似乎会有些多余了。...else: print("素数")总共46行代码,可以在极短时间内,判断个数是否为素数,但是这个算法,不准确的!...图片如图,我们输入 5773 这个数字,它至少可以被 23、251、5773、1 这四个数整除,但是算法显示,素数,因此这个算法不准确的。...在判断个数 n 是否素数时,我们可以用从 1 到 n 的所有数,挨个去除 n 得到是否整除,如果整除的次数大于 2 就意味着除了 1 和 n 本身外,存在其它数可以整除它,就违背了素数的概念,意味着这个

1.1K30
领券