面经---CloudIn(云英)

1.将数组从小到大输出

面试官描述为:有一个数组,前部分(注意并未说前半部分)非递减,后部分非递增,要求将该数组从小到大输出,时间复杂度O(n),空间复杂度O(1)。
当时我的思路是排序后顺序输出,但是只能做到时间复杂的O(nlogn)。面试完Google并没有找到该题目。

2.将二维正方形矩阵从右上角沿对角线输出

输入为非负整数N,该数等于右上角数值,即为矩阵边长。
我当时的想法是沿对角线一行一行输出,输出为单独的函数,给它起始、结束位置即可,面试完后发现是错的,起始、结束位置的公式写错了。如下是正确解法
vector<int> arrayPrint(vector<vector<int> > arr, int n) { vector<int> result; int row = 0, col = n-1; while(row < n) { int i = row, j = col; while(j<n && i<n) { result.push_back(arr[i][j]); i++; j++; } if(j == n && i < n) col--; if(i == n) row++; } return result; }

3. C++基础
1. int (*s[10]) (int)

s为指针数组,其中的每一个元素为参数为int,返回值为int的函数指针。

2. C++是类型安全的吗

不是。因为C++中0可以代表bool类型变量中的false,非0可代表true

然后,后来还问了些最近有没有做一些什么项目之类的,目测跪了,发挥的太糟糕了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 14,679评论 0 89
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,242评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,930评论 18 399
  • 吉人自有天相,自助者,天助之。《择天记》虽是玄幻,却含人生大道:一位强者,就是要与挫折相抗衡,与现实的平庸作斗争,...
    小木人_1b70阅读 3,060评论 0 0