zoukankan      html  css  js  c++  java
  • 面试题参考

      题目的参考和解答思路来自http://www.cnblogs.com/nokiaguy/archive/2013/01/29/2881476.html

    问题描述:

     求一个已经排序的数组(升序),数组中可能有正数,负数或0,求数组中元素的绝对值最小的数,要求不能用顺序的比较方法(复杂度需小于

    O(n))。

    例如,数组{-20,-13,-4,6,77,200},绝对值最小是4

    问题分析:

       根据题意知道,数组是排好序的,既然已经排好序了,哪我按照常识,就应该知道绝对值最小的一定是中间的某个数?所以我认为,知道数组的大小,然后取其中间的数,如果是数组的长度是奇数,那就是中间的数,如果是偶数,那就比较中间的两个数的绝对值即可。

    参考了其中一人的回帖,然后自己把它用c语言实现下

    代码:

    View Code

    总结:
       刚开始自己写的求数组的长度的代码,出现问题,数组的访问越界了,现在想来,以前自己有些代码也是这样写的,看来以前测试通过可能也是凑巧啦,对数组的定义与使用要加深理解,如定义数组的时候为它赋值,这时系统就会根据它的赋值,为它分配了固定空间大小,你要计算长度的时候就不能采取遍历的方法,当数组为空时返回其长度,这是个严重的错误。意识到这个问题后,采取了链表的方法,对链表运用加深了理解。

  • 相关阅读:
    git初学【常用命令、上传项目到码云或从码云拉取、克隆项目】
    dedecms自学
    sublime3使用笔记
    路由功能
    bootstrap模态框篇【遇到的问题】
    justgage.js的使用
    fullpage.js使用方法
    js&jq遇到的问题(不断更新中)
    图灵完备——停机问题
    中断
  • 原文地址:https://www.cnblogs.com/zhangyingai/p/7099089.html
Copyright © 2011-2022 走看看