84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
1、一个数组 a[99] ,里面有1-100中的99个不重复的整数,让你找出没有的那1个。
2、一个数组 a[99] ,里面有1-100中的98个不重复的整数,让你找出没有的那2个。
大神求教~
学习是最好的投资!
bit vector思想,O(n)时间复杂度
可以参考下我写的文章 http://www.cnblogs.com/zichi/...
第一题用5050减去数组所有元素的和即为缺少的元素第二题创建一个新数组b[99],遍历一遍原数组,b[a[i]] ++,最后遍历一遍b,为0的就是缺少的数字
a.都可以通过给数组排序然后通过循环找出b.第一题可以用5050-数组中元素的和得到答案
把数组遍历相加的和和1-100之和相减不就能得到么
桶排序,O(n)的时间
获取那99个整数,再和那个100个整数 array_diff一下不就行了
先排序生成,然后让i和 list[i] 比较,i++.
生成一个1-100的数组,然后与给定的数组a[99],然后求一下两者的差集就OK了
1.使用map<Integer,Integer>先导进数据map.put(1,0),map.put(2,0),map.put(3,0)到1002.循环随机生成99个不重复的1-100的数字i并修改map数据map.put(i,1)3.遍历map,键值为0的数则为需要找出的数字
两道题通用,使用map来查找
bit vector思想,O(n)时间复杂度
可以参考下我写的文章 http://www.cnblogs.com/zichi/...
第一题用5050减去数组所有元素的和即为缺少的元素
第二题创建一个新数组b[99],遍历一遍原数组,b[a[i]] ++,最后遍历一遍b,为0的就是缺少的数字
a.都可以通过给数组排序然后通过循环找出
b.第一题可以用5050-数组中元素的和得到答案
把数组遍历相加的和和1-100之和相减不就能得到么
桶排序,O(n)的时间
获取那99个整数,再和那个100个整数 array_diff一下不就行了
先排序生成,然后让i和 list[i] 比较,i++.
生成一个1-100的数组,然后与给定的数组a[99],然后求一下两者的差集就OK了
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来查找