泷澄建设集团网站,专业做制作网站,徐州有名的设计公司,网站制作怎么做下拉菜单目录
1.题目描述
2.题目分析
3.编写代码
4.总结 这是牛客网上的一道题目
1.题目描述 题目链接#xff1a;买卖股票的最好时机(一)_牛客题霸_牛客网 (nowcoder.com)
2.题目分析
我们看到这个题目中一个数组表示每一天的股价#xff0c;那么最大利润怎么算呢#xff0c…目录
1.题目描述
2.题目分析
3.编写代码
4.总结 这是牛客网上的一道题目
1.题目描述 题目链接买卖股票的最好时机(一)_牛客题霸_牛客网 (nowcoder.com)
2.题目分析
我们看到这个题目中一个数组表示每一天的股价那么最大利润怎么算呢我们用图片来表示 假设这是我们输入的数组
根据题目的意思我们需要在股价最低的时候买入在股价最高的时候抛出但是这有一个问题我们只能在买入当天以后的股价中找利润最大的如果没有最大的那就返回0我们推理一下 第一天最小值8 利润8-80 第二天最小值8 利润9-81 第三天最小值2 利润2-20 第四天最小值2 利润4-22 第五天最小值2 利润10-28 第六天最小值1 利润1-10 ...... 依次递推即可知道最大利润值即为8
3.编写代码
根据这个逻辑写代码的时候我们需要初始化最低股价min最大效益maxProfit当前股价price
当前股价我们需要假设每一天的情况所以我们用for循环遍历数组实现最低股价我们假设数组的第一个元素是最低股价然后与当前股价比较得出最低股价每一天的最大利润是当前股价减去最低股价比较每天的最大利润得出所有最大利润中的最大利润返回没有利润则返回0
我们编写出下面这段代码
int maxProfit(int* prices, int pricesLen ) {// write code hereint min*prices;int maxProfit0;//初始化最大利润int price0;//初始化当前股价for(int k0;kpricesLen;k){priceprices[i];minminprice?min:price;//求出当前股价之前的最低股价maxProfitmaxProfit(price-min)?(price-min):maxProfit;}return maxProfit;
}4.总结
作为程序员拿到题目后一定不会是立刻打开编译器写代码的我们需要先分析题目梳理解决问题的逻辑
条理清晰才能写出高效的代码
一起加油吧小杜陪各位一起成长