好未来面试面经

问了两题。
1,a的b次方 
2,最长单调递增子序列。

第一个写了个常规解法,面试官问我有没有最优解法。
第二题dp题写了个n方复杂度的,他又问我这不是最优解法。然后就gg了
全部评论
第二题可以用二分
点赞 回复
分享
发布于 2017-08-30 09:33
二分
点赞 回复
分享
发布于 2017-08-30 09:36
阅文集团
校招火热招聘中
官网直投
第二个nlogn,dp(i)表示长度为i的子系列,最后一个数最小多大,每次可以二分一下
点赞 回复
分享
发布于 2017-08-30 09:38
a^b,b是整数吗?
点赞 回复
分享
发布于 2017-08-30 09:38
第一题好像有公式  剑指offer上的题
点赞 回复
分享
发布于 2017-08-30 09:41
第一题用快速幂
点赞 回复
分享
发布于 2017-08-30 09:44
二面?
点赞 回复
分享
发布于 2017-08-30 09:51
第二题 lis
点赞 回复
分享
发布于 2017-08-30 10:19
第二题,一次遍历就可以
点赞 回复
分享
发布于 2017-08-30 11:04
double Mypow(int a, int b) { if (b < 0) { return 1.0 / power(a, -b); } return power(a, b); } double power(int a, int b) { if (b == 0) return 1; double x = power(a, b / 2); if (b % 2 == 0) { return x * x; } return x * x * a; } 第一题 第二题 int Print1(vector<int> array) { int len = array.size(); vector<int> dp(len,1); for (int i = 1; i < len; i++) { if (array[i] >= array[i- 1]) { dp[i] = dp[i - 1] + 1; } else { dp[i] = max(dp[i - 1],dp[i]); } } return dp[len - 1]; } 请大佬指正
点赞 回复
分享
发布于 2017-09-05 16:31
public static void maxLengthSubSequence(int[] array) {         int start = 0;         int end = 0;         int length = 0;         int maxlen = 0;         for (int i = 0; i < array.length - 1; i++) {             if (array[i] >= array[i + 1]) {                 start = i + 1;                 end = start;             } else {                 end = i + 1;             }             length = end - start + 1;             if (length > maxlen) {                 maxlen = length;             }         }         System.out.println(maxlen);     }
点赞 回复
分享
发布于 2017-09-05 17:19
请问这是什么岗啊?算法还是开发?
点赞 回复
分享
发布于 2017-09-22 12:04
int getResult(int a,int b){ int result=1; while(b>0){     if(b%2!=0)             result*=a;         a*=a;         b>>=1; }
点赞 回复
分享
发布于 2017-10-24 21:57

相关推荐

点赞 19 评论
分享
牛客网
牛客企业服务