>>分享数据结构和算法相关的知识和技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20121 个阅读者 刷新本主题
 * 贴子主题:  微软面试题:买卖股票的最佳时机 回复文章 点赞(0)  收藏  
作者:javathinker    发表时间:2020-03-09 17:39:21     消息  查看  搜索  好友  复制  引用

                                                                                                

微软面试题:买卖股票的最佳时机

题目描述

     假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。

         样例1        

  1.      输入: [3, 2, 3, 1, 2]
  2.      输出: 1
  3.      说明:你可以在第三天买入,第四天卖出,利润是 2 - 1 = 1

       样例2        

  1.      输入: [1, 2, 3, 4, 5]
  2.      输出: 4
  3.      说明:你可以在第0天买入,第四天卖出,利润是 5 - 1 = 4

       样例3        

  1.      输入:  [5, 4, 3, 2, 1]
  2.      输出: 0
  3.      说明:你可以不进行任何操作然后也得不到任何利润

题解

     大厂面试除了操作系统和计算机网络这些基础外,还需要熟练掌握算法和数据结构。        

  1.       public   class  Solution {
  2.            public  int  maxProfit ( int[] prices) {
  3.               if (prices ==  null || prices.length ==  0) {
  4.                   return  0;
  5.              }
  6.               int min = Integer.MAX_VALUE;   //just remember the smallest price
  7.               int profit =  0;
  8.               for ( int i : prices) {
  9.                  min = i < min ? i : min;
  10.                  profit = (i - min) > profit ? i - min : profit;
  11.              }
  12.               return profit;
  13.          }
  14.      }

----------------------------
原文链接:https://blog.csdn.net/JiuZhang_ninechapter/article/details/104538586
作者:九章算法

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-03-10 12:49:17 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=2700&replyID=0&skin=1&saveSkin=true&pages=1&replyNum=

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员