题目: 数组 A 由 1000 万个随机正整数 (int) 组成,设计算法,给定整数 n,在 A 中找出 a 和 b,使其符合如下等式: n = a + b 解题思路: 1. 1000w个随机正整数占用空间大概38-40MB,并不是很大,但是仍需要考虑如果数量级继续增大的情况.最好找到不用把数组加载到内存的方法. 2. 若n给定,则数组中大于n的数都没有用,有用的只是那些处于0和n之间的数字,所以1000w个数字其实可以缩减为长度为n的数组,但是n也可能比1000w大.这并不是解决问题的思路.
有一类面试题,既可以考察工程师算法.也可以兼顾实践应用.甚至创新思维,这些题目便是好的题目,有区分度表现为可以有一般解,也可以有最优解.最近就发现了一个这样的好题目,拿出来晒一晒. 1 题目 原文: There is an array of 10000000 different int numbers. Find out its largest 100 elements. The implementation should be optimized for executing speed. 翻译
题目 Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,104 ]. The first one who bets on a unique number wins. For example, if there ar
自己知道思路怎么去,但是就是自己不会写,在网上找了一些来看,有些还是没有怎么看明白.学习到了这么一种方法 var a=['ss','dd','ss','cc','dd',1,2,1] var b={}//注意这儿是声明的空对象: for(var i=0;i<a.length;i++){ b[a[i]]==a[i] //这个地方是在对B对象进行赋值,(添加属性并赋值); } a=[]; for(var el in b){ if(el==b[el]){ a.push(el) } } alert(a