首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

LeetCode笔记:121. Best Time to Buy and Sell Stock

这道题的意思就是,数组里的数按照顺序是每天的股票价格,你可以选择在某一天购买,然后再之后的某一天销售掉,销售的日子当然必须在购买的日子之后,也就是数组的顺序要靠后一些。要计算在哪两天进行买卖收益最大。这道题乍一看需要n*n的循环去计算每出一个价格后的最优解,我也是这样一开始就这样做,但是这样做时间复杂度太高,会超时,实际上也不用这么复杂。我们只需要每出一个新价格后,先判断这个价格减去我之前选择的买进价格后是否比之前的收益要大,以及这个新价格是否比我之前的买入价格要低,然后进行相应的操作即可,如果收益更大,就把这个收益记录下来,如果比买入价格低,就把买入价格换成这个价格。不需要担心这样直接换了之后往后计算的收益会不会不如之前,因为我们已经记录了在此之前的最大收益了,每次都会做对比的,而更换了更低的买入价格后,我们继续往后看能不能获得更大的收益,因为对于后面的数字来说这个数就是之前最小的买入价格了。其实想清楚后要进行的操作很简单,但如果想不清楚,就会觉得可能性太多了,要面面俱到总是会出问题,这里就要求头脑清晰了。

02

C#中如何使用ArrayPool

在C#中,数组是一种常见的数据结构,用于存储一系列相同类型的元素。在使用数组时,一个关键的方面是内存管理。当我们创建数组时,系统需要分配一块内存来存储数组元素,并在数组不再需要时释放这些内存,以避免内存泄漏和提高系统资源利用率。然而,频繁的数组创建和销毁操作可能导致内存碎片化,降低程序的性能。为了解决这个问题,C#引入了ArrayPool类,它允许我们更有效地管理数组的内存。 ArrayPool是.NET Framework中的一个工具类,用于更有效地管理数组的内存分配和释放。它的主要目的是减少由于频繁创建和销毁数组而导致的性能损失。通过ArrayPool,我们可以重复使用已分配的数组,而不是不断地创建新的数组。这样一来,我们可以避免在堆上频繁分配小块内存,减少GC的负担,提高程序性能。

01

一篇文章带你了解Java中数组下标、遍历和最值

前面几篇文章用Java带大家一起了解了几个游戏小项目,感兴趣的小伙伴可以点击文章观摩下,手把手教你用Java打造一款简单故事书(上篇)、手把手教你用Java打造一款简单故事书(下篇)、手把手教你用Java打造一款简单考试系统(上篇)、手把手教你用Java打造一款简单考试系统(下篇)、手把手带你用Java打造一款对对碰游戏(上篇)、手把手带你用Java打造一款对对碰游戏(下篇)、手把手带你用Java实现点灯游戏(上篇)、手把手带你用Java实现点灯游戏(下篇),接下来的几篇文章是关于Java基础的,希望对大家的学习有帮助,欢迎大家在讨论区留言。

02
领券