【笔试面试】2015华为软件开发实习生

时间: 2015.06.16
地点:厦门大学

  1. 简单题: 10个数字位取3个组成一个三位数(不能重复),使得这三位数的值最大。
    方法:这个是送分题,我比较懒,直接用set 来存放,然后输出后面三个位置的值来搞定

  2. 奇偶数排序问题
    问题描述: 一串无序的数字,先根据所以奇数的逆序排序,再输出所有偶数的顺序排序数值。
    方法: 很简单,基本两个排序就可以搞定。

  3. 最大的边长问题:
    问题描述:大致是这样子,有一个n*m的0 ,1 组成的矩阵,求该矩阵的最大的正方形子区域,使得正方形区域内的所有元素都为1,并输出改正方形的边长。其中n,m

解法1:暴力解法:穷尽所有的正方形子区域(O(N^2))+判断该正方形子区域内的元素是否都为1(O(N^2)),所以该方法的时间复杂度是(O(N^4)),鉴于n,m

解法N:
这种问题,一定要想方设法的避免重复计算问题,可以考虑以空间换时间的方式去实现。

想法1: 积分图的方法://跟图像上的积分图一个概念。
伪代码

源代码:

可惜当时做的时候,没有想到这个,只是在考完回来的路上才想到的。

来源:RiweiChen

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年5月14日
下一篇 2015年5月14日

相关推荐