买卖一次股票的问题----go语言实现(代码片段)

有关于S27的故事 有关于S27的故事     2023-02-23     271

关键词:

问题

有一个数组[7,0,2,8,5,4],买卖股票,数组的下标对应着日期
你可以操作一次买入与卖出 如:在0买入,在8卖出,赚了8-0 ,在2买入5卖出,就赚3元
不能 在0买入,7卖出(意思说,卖出要在买入后)
如果数组[7,5,4,3,2,1] 不买入卖出,赚0

求怎么买卖赚最多,最多只能买卖一次

思路分析

1.卖出的下标,在买入的下标后面
2.遍历找到每一下标买卖的最大值
1)选择一个下标,然后遍历这个下标后面的所有数据的最大值,相减就是当前下标的最大利润
2)把这个利润放入到一个数组中
3)继续遍历下一个下标
3.再从这些最大值中,找出最大的一个

代码实现

func solution(slice []int) (max int) 
	resSlice := make([]int,len(slice))
	for key, value  := range slice 
		resSlice[key] = value
		for i := key; i < len(slice); i++ 
			//找当前元素,后面元素的最大值
			if slice[i] > resSlice[key] 
				resSlice[key] = slice[i]
			
		
		fmt.Printf("solution() 最大的数resSlice[key]:%#v\\n",resSlice[key])
		resSlice[key] = resSlice[key] - value //最大的差值,可能是个负数
	
	max = 0 //这里设置为0,如果所以数都是负,就不买入卖出,赚0元
	fmt.Println("resSlice=",resSlice)
	for _,v := range resSlice 
		if v > max 
			max = v
		
	
	return


func main() 
	fmt.Println("come in main()")
	defer fmt.Println("out of main()")
	slice := []int 5,7,0,9,5
	fmt.Println("slice:",slice,"\\tlel:",len(slice))
	res := solution(slice)
	fmt.Println("afer res:",res)



复杂度分析:

空间复杂度: O(N)
时间复杂度:O(N log N)

买卖一次股票的问题----go语言实现(代码片段)

问题有一个数组[7,0,2,8,5,4],买卖股票,数组的下标对应着日期你可以操作一次买入与卖出如:在0买入,在8卖出,赚了8-0,在2买入5卖出,就赚3元不能在0买入,7卖出(意思说,卖出要在买... 查看详情

聊聊买卖股票的最佳时机(代码片段)

...了6道股票系列的经典问题分享给大家,咱们今天聊聊买卖股票的最佳时机。想当初头一次刷股票问题时候,刷了股票问题一二三,但 查看详情

聊聊买卖股票的最佳时机(代码片段)

...了6道股票系列的经典问题分享给大家,咱们今天聊聊买卖股票的最佳时机。想当初头一次刷股票问题时候,刷了股票问题一二三,但 查看详情

122.买卖股票的最佳时机ii(代码片段)

.../best-time-to-buy-and-sell-stock-ii/solution/暴力  本题可以多次买卖股票,如果只允许一次买卖股票,整个暴力就是n2的算法,如果可以无限制买卖股票直接用普通的写法不是很好写,可以用递归来解决。先考虑只允许一次买卖的暴力... 查看详情

剑指[63]_股票的最大利润问题;力扣[122]_买卖股票的最大利润时机ii(代码片段)

...来源:剑指Offer63.股票的最大利润本题与力扣121题相同:121.买卖股票的最佳时机题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例1:输入:[7,1,5,3,6,4]输出:5... 查看详情

121.买卖股票的最佳时机(代码片段)

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票... 查看详情

剑指offer(c++)-jz63:买卖股票的最好时机(代码片段)

...股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次 查看详情

149.买卖股票的最佳时机(回顾)(代码片段)

149. 买卖股票的最佳时机中文English假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例样例1输入:[3,2,3,1,2]输出:1说明:... 查看详情

买卖股票的最佳时机

...第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例。代码:(在VS环境里并没有运行出来,不知道问题出现在哪了)#include"stdafx.h"#include<iostream>usingnamespacestd;int_tmain(intargc... 查看详情

123.买卖股票的最佳时机iii(代码片段)

123.买卖股票的最佳时机III思路dp,最多只能买卖两次,每天有五种状态,其中四种需要讨论。dp[i][]每天的各个状态的利润。卖出的利润一定比买入的利润大dp初始化时,看作第一天可以多次买入卖出。例如第一天... 查看详情

123.买卖股票的最佳时机iii(代码片段)

123.买卖股票的最佳时机III思路dp,最多只能买卖两次,每天有五种状态,其中四种需要讨论。dp[i][]每天的各个状态的利润。卖出的利润一定比买入的利润大dp初始化时,看作第一天可以多次买入卖出。例如第一天... 查看详情

poj8464股票买卖dp北大acm/icpc竞赛训练(代码片段)

 主要不好想到定义问题状态,一开始想枚举第一次股票交易的卖出时间【这样O(1)处理第一次买入时间,logN处理第二次最大利益(第二次交易实际上是取最大值,所以可以用堆维护)】,但T*N*logN就tle了。正解是dp1(i)代表1-i... 查看详情

188.买卖股票的最佳时机iv(代码片段)

188.买卖股票的最佳时机IV思路dp二维数组的含义是第i天第k次交易状态(买入卖出)的利润;初始化dp数组时,所有的买入都是-price[0];所有的卖出都是0;递推的是第k次买入和卖出的利润;最后要返回的最后... 查看详情

bailian4121股票买卖最值(代码片段)

4121:股票买卖总时间限制:1000ms内存限制:65536kB描述最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。假设阿福已经准确预测出了... 查看详情

122.买卖股票的最佳时机ii-一次遍历(代码片段)

一、题目描述给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获... 查看详情

买卖股票的最佳时机(代码片段)

title:买卖股票的最佳时机date:2022-04-2413:35:24tags:每天进步一点点系列题目买卖股票的最佳时机难度简单给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在... 查看详情

买卖股票的最佳时机(代码片段)

title:买卖股票的最佳时机date:2022-04-2413:35:24tags:每天进步一点点系列题目买卖股票的最佳时机难度简单给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在... 查看详情

golang121买卖股票的最佳时机(代码片段)

查看详情