在51js上看到一个题目。
从1到10w(共10w个数)中随机抽走2个数,然后打乱剩下的数的顺序,问如果从这剩下的数中快速的找出抽走的是哪2个数?
一位牛人朋友写了一个利用积差与和差来判断的方式。
具体参照http://www.cnblogs.com/meteoric_cry/archive/2011/03/16/1986008.html。
我个人是想不到如此了,我想到的是另外一个简单的方式。就是制作数组,然后用下表来排除相应的元素,使得最后数组的元素剩下被抽走的2个数据。考虑到数组下标本身的定位方式,是地址方式直接的定位,所以对cpu的占用情况并不大。效率应该还是可以的。如果js中真的是链表形式存储数组元素的话,那么就可以使用多维的方式进行快速定位.因为要对机器里的东西进行清理,决定在iteye保留此代码,此帖只为保留源码.
var n = 100* 1000;
var arr = [];
for (var i = 0; i < n ; i++) {
arr.push(i+1);
}
var num1 = arr.splice(Math.floor(Math.random() * arr.length), 1);
var num2 = arr.splice(Math.floor(Math.random() * arr.length), 1);
document.write('抽掉数:<br/>第1个数是:' + num1 + ',第2个数是:' + num2 + '<br/><br/>');
var arr2=new Array(100);
for(var i=0;i<100;i++){
arr2[i]=new Array(1000);
for(var j=0;j<1000;j++){
arr2[i][j]=i*1000+j;
}
}
for(var idx in arr){
var temp=arr[idx]-1;
var idx1=Math.floor(temp/1000);
var idx2=temp%1000;
delete(arr2[idx1][idx2]);
}
for(var idx in arr2){
if(arr2[idx].length!=0){
for(var idx2 in arr2[idx]){
document.write(arr2[idx][idx2]+1+"<br/>");
}
}
}
许多复杂问题都有简单而又平凡的方式来处理,我个人并不是一个很博学的人,对于处理问题也总是从简单平凡的方式来处理,当然这许多人的眼里或许太普通了,程度就是如此也没什么办法,只有在自己能想到的范围里来解决问题。
分享到:
相关推荐
9. 榜样的力量:董成伟和赵莉蓉两位老师的事迹为其他教师树立了榜样,提醒教育工作者要珍视平凡中的不平凡,简单中的不简单,用实际行动诠释师德。 10. 教育的未来展望:董成伟老师设立基金资助贫寒学生的愿望,...
【简易试验板】是IT学习领域中一个非常实用的教学工具,尤其对于初学者而言,它为探索和实践提供了直观的平台。"平凡老师提供的简易试验板"是一个专为教育设计的项目,旨在帮助用户理解并掌握基本的编程概念、硬件...
在本案例中,初学者可以通过简单的C程序实现对仿真板的功能控制,例如点亮LED、蜂鸣器发声等,以观察和理解程序运行的效果。 在仿真阶段,用户无需实际硬件设备,而是通过软件模拟单片机的运行环境。这大大降低了...
5. **生活中的美**:第三篇讲话稿探讨了平凡生活中的美,通过描绘小巷的景色和生活场景,指出即使在简单朴素的环境中也能找到独特的韵味和美感。这启示我们欣赏生活中的细节,发现日常中的宁静和舒适。 6. **传统...
在2016年的高考语文作文预测中,一个引人深思的主题被提出:“简单平凡的小幸福”。这个主题鼓励考生去发掘生活中的细微幸福,那些看似平常却难以忘怀的瞬间,那些平凡到几乎被忽视的快乐。在这个繁忙的世界里,我们...
【描述】:“本资源简单易懂,讲解的不深,适合才接触单片机的人使用。” 这表明教程内容设计得浅显易懂,旨在避免复杂的理论阐述,而是注重实践操作和基本概念的理解。对于初学者来说,这是非常重要的,因为单片机...
### Android平凡之路:深入理解Volatile变量 #### 概述 在Android开发乃至整个Java编程领域,`volatile`关键字的应用非常广泛。它主要用于确保多线程环境中的数据一致性,通过控制内存可见性和禁止指令重排等机制...
《平凡的颜色,不平凡的创造》一文中,主要讲述了四位科学家——赤崎勇、天野浩、中村修二对蓝光发光二极管(LED)的重要贡献,他们因此荣获诺贝尔物理学奖。蓝光LED的发展历程揭示了科技如何克服挑战,实现从传统...
该系统旨在提供一个简单易用且功能丰富的环境,以支持各种类型的考试和测试。以下是对该系统的详细解析: 1. **版权证书**:V5版权证书.jpg可能是该考试系统的一个官方授权证明,表明该软件具有合法的知识产权,...
【标题】和【描述】中提到的“关于平凡的唯美句子.doc”是一个文档,标签为“文档”,内容主要是关于平凡生活的感悟和理解。虽然这些内容并非IT知识,但我们可以从中提炼出与生活哲学相关的一些观点,并尝试将其与IT...
【标题】: "初中语文文摘人生平凡最难" 这个标题揭示了一个深刻的人生哲理,即平凡的生活并不...它提醒我们,平凡的生活并不简单,而是在日复一日的平凡中寻找内心的平静和满足,这是一种需要勇气和智慧的人生演出。
从给定文件的信息来看,这篇文档主要探讨了在日常生活中如何发现平凡事物中的美,并通过几个具体的例子进行了阐述。下面将根据文档中的内容提炼出相关的IT知识点并不适用,因此这里将按照要求转换为讨论如何从日常...
51单片机是微控制器领域中非常经典的一款产品,因其结构简单、易于上手,被广泛应用于教育、科研和工业控制等领域。本教程通过深入浅出的讲解,旨在使学习者能够熟练地运用C语言进行51单片机的编程。 首先,51...
《平凡keilc51教程》是一份专为单片机初学者设计的教程资源,主要围绕keil集成开发环境的使用展开。keil是业界广泛使用的C51编译器,它为8051系列单片机提供了强大的开发支持。本教程以简单易懂的方式,通过丰富的...
本教程由平凡老师倾心打造,旨在为初学者提供一个简单易懂的单片机学习路径。单片机,又称微控制器,是集成了计算机基本功能部件(CPU、内存、输入/输出接口等)的微型计算机系统,广泛应用于自动化、智能家居、汽车...
friend-list, 非平凡( 简单) 前端编程挑战 好友列表非平凡( 简单) 前端编程挑战。 solutions solutions React React React Redux saga saga saga saga saga saga saga saga and and和 Snabb
综上所述,客服工作并非简单的事务处理,而是涵盖专业素养、沟通技巧、问题解决、团队协作等多方面能力的综合体现。通过在平凡的岗位上持续耕耘,客服人员可以不断提升自我,为企业赢得宝贵的客户信任和市场口碑。
51单片机是一类基于Intel公司MCS-51内核的微控制器,因其简单易用且功能实用,特别适合初学者学习和使用。"平凡的51单片机教程"是为初学者设计的一份教程,旨在通过通俗易懂的语言帮助学习者理解单片机的基本概念和...
在《平凡的探索:单片机工程师与教师的思考》这篇文章中,作者旨在通过自己的经验分享,帮助那些已经掌握了单片机基础知识的学习者进一步提升自己,从一个简单的“学习者”成长为一名真正的“开发者”。这一转变不...