3.31 恒生笔试

三道SQL、两道编程。
第一道优化一下100%。
第二题 leetcode原题变种,股票问题。做题时,误以为最多只能交易两次,k当成2处理了,只能过了66.7%。
以下是补交版本,没有运行,大概思路。
public class Solution {
     public double get_max_profit (double M, int N, double[] historyPrices, int K) {
        // write code here
        //方法跟leetcode原题基本一样,区别是[0][0] 代表第一次持有的股票数量,[0][1] 代表卖出的钱
       double[][] dp = new double[K][2];
       for (int i = 0; i < k; i++) {
           dp[i][0] = M / historyPrices[0];
           dp[i][1] = M;
       }
       for (int i = 1; i < N; i++) {
           dp[0][0] = Math.max(dp[0][0],dp[0][1]/historyPrices[i]);
           dp[0][1] = Math.max(dp[0][1],dp[0][0] * historyPrices[i]);
           for (int j = 1; j < k; j++) {
               dp[j][0] = Math.max(dp[j][0],dp[j - 1][1] / historyPrices[i]);
               dp[j][1] = Math.max(dp[j][1],dp[j - 1][0] * historyPrices[i]);
           }
       }
       return dp[k - 1][1] - M;
    }
}
全部评论
第一题怎么优化呀
1
送花
回复
分享
发布于 2023-04-01 11:19 北京
第二题是力扣核心模式??不需要处理输入输出?
1
送花
回复
分享
发布于 2023-04-01 11:29 上海
滴滴
校招火热招聘中
官网直投
第一题不就for循环就能过吗
1
送花
回复
分享
发布于 2023-04-03 10:44 安徽
一样哇,卧槽,算法题没做出来
点赞
送花
回复
分享
发布于 2023-04-01 08:06 湖南
点赞
送花
回复
分享
发布于 2023-04-01 08:25 上海
原来可以用2写一部分
点赞
送花
回复
分享
发布于 2023-04-03 07:53 日本
我也做了恒生的 数据库直接没学过空着,编程也基本忘干净了,就写了点如何做调研设计
点赞
送花
回复
分享
发布于 2023-04-03 13:48 湖北
约面了吗友友
点赞
送花
回复
分享
发布于 2023-04-09 13:44 云南

相关推荐

10 28 评论
分享
牛客网
牛客企业服务