`
messi_18
  • 浏览: 99408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

两个有趣的问题

    博客分类:
  • java
阅读更多
今天,同事考了我两个问题,很有趣。我只答对了一个。

第一个问题是,一个一维数组,它里面有成对的数。但是,有一个数却不是成对出现的,希望能找到这个数。有一个要求用最少的空间。
比如说,[1,4,3,1,5,3,4]这个数组中,数字5就不是成对出现的。我最先,考虑用hash表来实现,但是,如果数组很大的话,空间占用也很大。

答案是,用位运算的异或。
遍历这个数组,直接进行异或运算就可以了。
[1,3,4,2,3,5,2,1,5].inject{|r,i| r^i}
=> 4


第二个问题是,如何确定一个1到100之间的数组成的数组中缺少了哪一个数?
这个我说对了,直接求和再减去(1+100)*50就可以了。
arr = (1..100).to_a
arr.shift
s = arr.inject{|sum,i| sum + i}

(100+1)*50 - s



这两个问题,让我想到了编程珠玑那本书里提到的特殊问题的特殊解法。准确的分析问题,才能带来优雅的实现,确切的说是正确的实现。
分享到:
评论

相关推荐

    关于java的一个有趣的问题

    首先,我们来看看标题中提到的有趣问题:`String str=new String("abc");` 这行代码会创建几个String对象。答案是两个。`"abc"`在Java中是一个字面量,它在运行时会被自动放入字符串池。`new String("abc")`则会创建...

    运用计算机完成有趣的问题PPT课件.pptx

    课件通过向学习者展示如何编写函数来实现这两个计算,不仅加深了他们对于欧几里得算法等算法的理解,还锻炼了他们在编程中解决数学问题的能力。最大公约数和最小公倍数在计算机科学的诸多领域都有广泛应用,掌握这些...

    sushuhuan.zip_素数环1到20_素数环20个数

    在这个特定的问题中,我们需要在1到20这20个自然数之间构建一个环形结构,使得环中任意相邻两个数的和都是一个素数。素数是大于1且只能被1和自身整除的正整数,如2、3、5、7等。解决这个问题的关键在于理解素数的...

    新人教二年级数学上册解决问题连续两问PPT学习教案.pptx

    例如,可以通过学校实际发生的事件来设计问题:“一班和二班参加运动会的总人数是27人,已知一班人数比二班多3人,那么两个班级各有多少人参加运动会?”通过这样的问题,学生不仅要运用加减法,还需要学会从问题中...

    java两条有趣的题目

    标题中的“java两条有趣的题目”可能指的是两个具有挑战性的编程问题,旨在测试或提升Java程序员的基础知识和解决问题的能力。描述中提到这些题目“很详细”且“很有意思”,暗示它们可能涉及到一些深入的Java概念,...

    一年级数学求两个数相差多少的实际问题PPT学习教案.pptx

    在小学一年级的数学课程中,理解“两个数相差多少”这一概念不仅是学习减法运算的起点,也是培养孩子们解决实际问题能力的基础。在这一教学阶段,学生需要通过具象的实例和有趣的互动活动,来深入理解和掌握这一概念...

    两个字符串相似度匹配

    综上所述,两个字符串相似度匹配是一个复杂而有趣的问题,涉及多种理论和方法。在选择合适的算法时,应根据应用场景、数据特性以及性能需求进行综合考虑。通过不断优化和调整,我们可以提高匹配的准确性和效率,满足...

    一年级数学下册 求两个数相差多少的实际问题1教学反思 苏教版 教案.doc

    《求两个数相差多少的实际问题》是苏教版小学数学一年级下册中的一个重要教学单元。在这一单元中,学生将学习如何运用减法来解决日常生活中的实际问题,例如比较两组物体的数量差异。本单元的教学重点在于使学生理解...

    数据结构课程设计 学生搭配问题

    在本次数据结构课程设计中,我们面临的任务是解决一个有趣的学生搭配问题。问题设定如下:一个班级有m个女生和n个男生(m≠n),他们需要在一个舞会上配对跳舞。男生和女生分别坐在舞池两侧,每次舞蹈开始时,男女各...

    人工智能代码(罗马尼亚问题+n皇后问题)

    "遗传算法解n皇后问题"是另一个有趣的例子。n皇后问题要求在n×n的棋盘上放置n个皇后,使得任意两个皇后都无法互相攻击,即不存在同一行、同一列或同一对角线上的两个皇后。遗传算法是一种模拟自然选择和遗传机制的...

    概率史上一个有趣的问题

    标题 "概率史上一个有趣的问题" 暗示我们要探讨的是概率论中一个具有历史背景的趣味问题,而描述中提到的“Python模拟”则表明我们将使用Python编程语言来重现和理解这个问题。通过Python进行模拟,我们可以更好地...

    初中有趣的数学问题PPT课件.pptx

    这个PPT课件包含了多个有趣的初中数学问题,涵盖了多个知识点,包括基础数学概念、运算技巧以及逻辑推理。以下是对这些知识点的详细说明: 1. **循环小数**:循环小数是那些在小数部分有一个或多个数字无限重复出现...

    12个有趣的C语言面试题

    本文将对12个有趣的C语言面试题进行解析,涵盖gets()函数、strcpy()函数、main()函数返回类型、内存泄露等多个方面的知识点。 一、gets()函数问 问题:请找出下面代码里的问题: ```c #include int main(void) { ...

    有趣的程序员面试问题.pdf,这是一份不错的文件

    本文主要介绍了10个有趣的程序员面试问题,涵盖了概率论、数学、逻辑思维等方面的知识。这些问题旨在考察程序员的逻辑思维和解决问题的能力。 问题一:如何用一枚硬币等概率地产生一个 1 到 3 之间的随机整数? 这...

    有趣的跳跃的测试用例jolly.rar

    如果你对这两个测试工具的使用不熟悉,建议先查阅相关文档,理解其基本用法,然后将“有趣的跳跃”的测试用例融入到这些测试框架中。 总的来说,“有趣的跳跃的测试用例jolly.rar”提供了检验C++代码在解决特定问题...

    打渔晒网问题 revers text 问题

    打渔晒网问题是一个有趣的数学游戏,其规则基于一个周期性的活动模式。在这个问题中,我们关注的是根据特定的日期来判断当天是“打渔”还是“晒网”。代码实现主要通过计算从某个基准年份到目标年份之间的总天数,...

    通过翻转子数组使两个数组相等1

    在给定的问题中,我们面临着一个有趣的算法挑战:通过翻转子数组使两个数组相等。这个问题来源于LeetCode,一个著名的在线编程练习平台。题目要求我们判断给定的两个长度相同的整数数组`target`和`arr`是否可以通过...

    仿真两个形状不同的平面薄膜的特征值

    在单个MPH文件中,我们构建了两个COMSOL Multiphysics模型,分别在两个不同的二维域上求解特征值PDE,并比较各自的特征值集。 这个示例不仅展示了数学上的等谱理论,还提供了实际应用中的仿真工具——COMSOL ...

    腾讯笔试题——有趣的数字

    小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢? 输入描述: ...对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表示差最大的对数。

    一年级数学下册 求两个数相差多少的实际问题2教案 苏教版 教案.doc

    《求两个数相差多少的实际问题》这一教学环节,不仅教授学生如何通过减法计算两数之差,更重要的是让学生通过比较和计算来解决实际问题,从而提高他们的数学应用能力和团队合作精神。 本节课的教学目标明确指出,...

Global site tag (gtag.js) - Google Analytics