玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

求python大牛帮看看这道简单的算法题如何巧解

1、一个数组 a[99] ,里面有1-100中的99个不重复的整数,让你找出没有的那1个。

2、一个数组 a[99] ,里面有1-100中的98个不重复的整数,让你找出没有的那2个。

大神求教~

a.都可以通过给数组排序然后通过循环找出
b.第一题可以用5050-数组中元素的和得到答案

可以参考下我写的文章 http://www.cnblogs.com/zichi/...

桶排序,O(n)的时间

第一题用5050减去数组所有元素的和即为缺少的元素
第二题创建一个新数组b[99],遍历一遍原数组,b[a[i]] ++,最后遍历一遍b,为0的就是缺少的数字

先排序生成,然后让i和 list[i] 比较,i++.

把数组遍历相加的和和1-100之和相减不就能得到么

生成一个1-100的数组,然后与给定的数组a[99],然后求一下两者的差集就OK了

获取那99个整数,再和那个100个整数 array_diff一下不就行了

1.使用map<Integer,Integer>先导进数据map.put(1,0),map.put(2,0),map.put(3,0)到100
2.循环随机生成99个不重复的1-100的数字i并修改map数据map.put(i,1)
3.遍历map,键值为0的数则为需要找出的数字

两道题通用,使用map来查找

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd13858.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年06月01日 - 17时05分33秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules