当前位置: 首页 > news >正文

聊城集团网站建设多少钱智慧团建在线登录

聊城集团网站建设多少钱,智慧团建在线登录,神农架网页设计,设计网站的目的1、题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…

1、题目

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0


2、示例

示例1:

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例2:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

 3、解题思路

该题有两种解决方法:

1.暴力法:

通过遍历取出数组中的每一个元素,并跟剩下的元素进行求差的结果再与最大利润进行比较,如此循环找出最大利润值。

2.动态规划法(优解):

首先假设第i天是获取最大的利益值,那么购入时候肯定是在集合[0,i-1]的范围里面找到其中的最小值,然后两者的价格相减就是我们要的最大利益。


4、LeetCode代码与案例代码

1.暴力法

LeetCode代码:

class Solution {public int maxProfit(int[] prices) {int maxProfit = 0;for (int i=0;i< prices.length-1;i++){for (int j=i+1;j< prices.length;j++){if (prices[j] - prices[i]>maxProfit){maxProfit = prices[j] - prices[i];}}}return maxProfit;}
}

案例代码:

package LettCode05;public class javaDemo {public static void main(String[] args) {int nums[] =new int[]{7,6,4,3,1};
//        暴力解法int maxProfit = 0;for (int i=0;i< nums.length-1;i++){for (int j=i+1;j< nums.length;j++){if (nums[j] - nums[i]>maxProfit){maxProfit = nums[j] - nums[i];}}}System.out.println("最大利润为"+maxProfit);}
}

 

 

总结:时间复杂度为O(n^2),空间复杂度为O(1);

2.动态规划法

LeetCode代码:

class Solution {public int maxProfit(int[] prices) {int lowPrice = Integer.MAX_VALUE;int max_profit= 0;for(int i=0;i<prices.length;i++){if (prices[i]<lowPrice){lowPrice = prices[i];}else if(prices[i] - lowPrice >max_profit){max_profit = prices[i] - lowPrice;}}return max_profit;}
}

案例代码:

package LeetCode06;public class javaDemo {public static void main(String[] args) {int prices[] = new int[]{7,1,5,3,6,4};
//        动态规划int max_profit = 0;int lowPrice = Integer.MAX_VALUE;for (int i=0;i<prices.length;i++){
//            找到第i天前的最小值if (prices[i]<lowPrice){lowPrice = prices[i];
//                某天的值减去这天前的最小值就是这天的最大利益
//                通过比较每一天的利益大小得到最大利益}else if (prices[i]-lowPrice>max_profit){max_profit = prices[i]-lowPrice;}}System.out.println("最大利润为"+max_profit);}
}

 

 

 

总结:该方法的时间复杂度为O(n),空间复杂度为O(1)

http://www.yayakq.cn/news/123450/

相关文章:

  • 网站建设会出现的问题跨境电商的基本流程
  • 镇江百度网站建设怎么在搜狐快站上做网站
  • 中铁建设集团网站wordpress 营销 主题
  • 做行程的网站推荐优秀的手机网站案例
  • 百度怎样做网站并宣传网站锦州网站做优化
  • 花里胡哨的网站新余专业做淘宝网站
  • 新媒体做图网站免费网络推广网站大全
  • 射洪网站建设中卫网架配件哪家好
  • 做彩票网站都是怎么拉人的WordPress推送至QQ
  • 做网站怎么备案做投资的网站好
  • 皋兰网站建设平台现在注册公司需要什么条件
  • 印度外贸网站有哪些wordpress编辑作者投稿者英文
  • 成都建设材料二维码网站网页设计与制作实例教程
  • 网站怎么做成手机版hm网上商城
  • 设计做任务的网站宗学华 网站建设
  • 企业电子商务网站的建设阶段开发软件的app
  • flash网站开发框架phpcms移动端网站怎么做
  • 网站开发商业计划书郑州做网站推广多少钱
  • 山东省建设厅特种作业证查询网站wordpress怎么建立空白文档
  • 贵阳网站建设公司外包加工网缝纫机外放加工活
  • 专线怎么做网站服务器免费网站seo优化
  • 个人型网站开站费用中国建筑中心官网
  • 西南交通建设集团网站安徽seo优化规则
  • .net个人网站开发视频深圳华企立方
  • 自己建的网站如何百度搜索展览公司网站模板
  • 移动网站开发培训网站备案信息被删除
  • 计算机网站开发书籍什么是灰色网站
  • 绵阳做网站优化网站数据丢失了做数据恢复需多久
  • 网站免费正能量软件下载怎么制作企业网站
  • 怎么建设一个公司网站.net做网站用什么技术