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

两道比较复杂的轩辕互动面试题(Python实现)

阅读更多
1.平衡点问题
  平衡点:比如int[] numbers = {1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点;假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点
要求:返回任何一个平衡点
下面是代码:
  1 li = [1,3,5,7,8,25,4,20]
  2 def main():
  3     i = 0
  4     length = len(li)
  5     before = 0
  6     after = 0
  7     mark = 0
  8     balance = 0
  9     total = sum(li)
 10     while True:
 11         balance = i + 1
 12         if balance + 1 > length -1:
 13             return -1
 14         if li[i] == li[balance+1]:
 15             mark = balance
 16             return (mark,li[mark])
 17         else:
 18             before = before + li[i]
 19             other = total - before - li[balance]
 20             if before == other:
 21                 mark = balance
 22                 return (mark,li[mark])
 23         i += 1
 24 if __name__ == "__main__":
 25    print  main()

2.支配点问题:
支配数:数组中某个元素出现的次数大于数组总数的一半时就成为支配数,其所在位序成为支配点;比如int[] a = {3,3,1,2,3};3为支配数,0,1,4分别为支配点;
要求:返回任何一个支配点
本问题可归结为众数问题(统计学范畴),即一组数据中出现次数最多的那个数值,它可以没有也可以为多个。
下面是代码,如果你又更号的实现,不吝赐教。
  1 li = [1,3,4,3,3]
  2 def main():
  3     mid = len(li)/2
  4     for l in li:
  5         count = 0
  6         i = 0
  7         mark = 0
  8         while True:
  9             if l == li[i]:
 10                 count += 1
 11                 temp = i
 12             i += 1
 13             if count > mid:
 14                 mark = temp
 15                 return (mark,li[mark])
 16             if i > len(li) - 1:
 17                 break
 18      else:
 19          return -1
 20 if __name__ == "__main__":
 21    print  main()

最后,还有个一个中位数的问题,在很多笔试中也会遇到。
中位数:即数据从小到大排列,将数据分为两部分,一部分大于该数值,一部分小与该数值。中位数的位置是这样计算的:如果数据长度为奇数,中位数的位置为(N+1)/2,如果为偶数则为第N/2个数与第(N/2)+1的平均数。
分享到:
评论
6 楼 edison0951 2010-02-22  
对koth的JAVA代码的小意见,为什么不把b写全,那样一看就知道什么意思,还有FOR循环第一个参数为什么不写?(我也是学过JAVA的人),koth很不注意代码呀。
5 楼 edison0951 2010-02-22  
如果不计有唯一性,返回任意一个即可,题目也没有规定一定要返回全部的。
4 楼 koth 2010-02-22  
汗,唯一性应该是有个大前提,只能是正数。要不然可以有多个平衡点的。
3 楼 koth 2010-02-22  
补充下:平衡点的唯一性是容易证明的,所以除非没有平衡点要不就只有一个。这从一方面说明程序的正确性。
2 楼 koth 2010-02-22  
平衡点Java代码, 时间复杂度O(N)
 public int calcBalance(int arr[])
    {
        int left[]=new int[arr.length];
        int right[]=new int[arr.length];
        int b=arr.length-1;
        for(int i=0;i<left.length;i++)
        {
            if(i==0)
            {
                left[i]=0;
            }
            else
            {
                left[i]=left[i-1]+arr[i-1];
            }
        }
        for(;b>=0;b--)
        {
            if(b==arr.length-1)
            {
                right[b]=0;
            }
            else
            {
                right[b]=right[b+1]+arr[b+1];
            }
            if(left[b]==right[b])return b;
        }
        return b;
        
    }


二楼贴的平衡点还是25,可找出
1 楼 真水无香 2010-02-22  
请教一下{1,3,5,7,8,25,1,5,7,8,3}的平衡点是多少?用上面的程序能算出来吗?

相关推荐

    Python面试题及答案共70道.docx

    Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python面试题及答案共70道Python...

    Python经典面试题-总结

    Python经典面试题 Python经典面试题 python面试题 python 面试题 Python经典面试题 Python经典面试题 python面试题 python 面试题 Python经典面试题 Python经典面试题 python面试题 python 面试题 Python经典面试题 ...

    python面试题汇总(

    在面试准备过程中,了解和掌握一些常见的Python面试题对于求职者来说至关重要。以下将详细解释上述文件中提到的Python知识点。 1. 利用Python的内置函数sum()可以非常简便地计算序列的总和。例如一行代码`sum(range...

    Python面试合集 史上最全面Python面试题和详解(10套) 完整版

    本文件内含10个文档,文档格式为md,需要用...包含:2019 Python最新面试题及答案16道题、110道Python面试题(上)、最常见的 35 个 Python 面试题及答案(2018 版)、整理的最全 python常见面试题(基本必考)等!

    128道Python面试题.pdf

    "128道Python面试题.pdf" Python基础知识点: 1. 文件操作:文件读写、文件类型、文件权限等。 2. 模块与包:Python中的模块和包、模块的导入、模块的使用等。 3. 日期处理:Python中的日期处理、日期格式化、日期...

    110道Python面试题:.pdf

    Python面试题大全 Python是一种广泛应用于数据科学、人工智能、Web开发等领域的高级编程语言。以下是 Python 面试题大全,涵盖了 Python 的基础知识、语法、标准库、面向对象编程、多线程编程等方面。 1. Python ...

    110道Python面试题汇总.doc

    Python是目前编程领域最受欢迎的语言。...每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。

    python基础面试题 python程序员面试题

    python基础面试题 python程序员面试题

    Python面试题汇总

    Python面试题汇总 Python 是如何进行内存管理的? Python 内部使用引用计数机制来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况有:1、一个对象分配一个新名称;2、将其放入一个容器中(如...

    剑指Offer面试题Python实现

    《剑指Offer面试题Python实现》是一份针对Python程序员在面试过程中可能会遇到的常见问题的解答集锦。这个资源主要涵盖了数据结构、算法、编程基础等多个方面,旨在帮助求职者提升技能,顺利通过面试。其中,...

    最新python面试题及答案.doc

    【Python面试知识点详解】 1. **Python标准库**:Python提供了丰富的标准库,例如os、sys、re、math和datetime。os库包含了与操作系统交互的函数,如文件操作和路径处理;sys库常用于处理命令行参数;re库支持正则...

    Python面试经验技巧面试题面试宝典python面试常见问题面试资料

    Python面试经验技巧面试题面试宝典python面试常见问题面试资料: 110道Python面试题.pdf Python面试宝典.pdf python面试常见的25个问题.pdf Python面试必须要看的16个问题.pdf 你不清楚的18个非技术面试题.pdf

    0积分 面经 面试题 python面试题 免费下载

    大数据架构 python基础 数据库 等应有尽有 可免费下载 面经 面试题 python面试题 300多道题 ,可以参考一下 适用人群:大一到大四,正在找工作的各位老哥 ,我相信这份面试题会给你们带来满意的效果 但是切记 不要...

    110道Python面试题汇总_python教程_

    针对“110道Python面试题汇总”的主题,我们可以深入探讨其中可能涵盖的多个知识点,这些知识点是Python开发者在面试中可能会遇到的常见问题。 1. **基础语法**:面试中经常考察Python的基础知识,如变量定义、数据...

    110道Python面试题汇总.rar

    Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱。...这份"110道Python面试题汇总.pdf"将是你准备面试的重要参考资料,它覆盖了各个层面的问题,帮助你全面复习和巩固Python知识。

    吐血总结!50道Python面试题集锦(附答案)

    Python 面试题集锦 Python 是目前编程领域最受欢迎的语言,本文总结了 Python 面试中最常见的问题,涉及 Python 基础知识、Python 编程、数据分析以及 Python 函数库等多个方面。下面是对这些问题的详细解释: Q1 ...

    python面试题

    ### Python面试题详解 #### Python语言特性 **1. Python的函数参数传递** 在Python中,函数参数的传递实质上是引用的传递。这与C语言中的指针类似,但又有本质的区别。Python中所有变量都是对内存中某个对象的...

    python100道面试题及解答()全部答案 pycharm 测试过 py3环境)

    python面试题100道答案全部 一般的只写了30个答案题目大概有 1、一行代码实现1--100之和 2、如何在一个函数内部修改全局变量 利用global 修改全局变量 3、列出5个python标准库 os:提供了不少与操作系统相关联的函数...

Global site tag (gtag.js) - Google Analytics