> 算法训练 - Yuyy
Yuyy
Yuyy

算法训练
文章归档

查找第K小/大数据,千万数据排序

思路 刚开始我以为这题的考点是如何快速读取文件(因为这是公司多线程学习分享后布置的作业),我就用多线程来解题。后来出题人跟我说:200m测试数据时我的程序OOM了,我才醒悟这题的考点不是快速读取文件,而是大文件排序。 这题挺有意思的,解题运用了多路归并,有…

   33   2021-03-17   去看看

LeetCode1114. 按序打印

一、思路 多个线程顺序执行,方法有很多,例如CountDownLatch,wait,volatile,join,semaphore,Automatic。。。 二、问题 我们提供了一个类: public class Foo {   public void first() { print("first"); }   public void second() { print("second"); }   p…

   44   2021-03-04   去看看

LeetCode877. 石子游戏

一、思路 第一时间想到的是动态规划,后来看题解发现,这玩意没那么复杂。 A和B比赛,没有平局,有两种结局。一、A赢B输,二、A输B赢。但是题中说亚历克斯先开始,言外之意就是主动权在他那里,只需提前计算出A赢还是B赢,然后照着赢的那个做即可。 言而总之,只要亚…

   63   2021-03-03   去看看

LeetCode226. 翻转二叉树

一、思路 我还想着二叉树遍历(非递归)忘了呢,转念一想,这儿又没有要求不能用递归,递归它不香吗? 二、问题 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 …

   44   2021-03-01   去看看

LeetCode116. 填充每个节点的下一个右侧节点指针

一、思路 经过画图发现,儿子之间连接没问题。但是不同父亲的孙子连接有问题,解决一个倒还好,巧妙的是经过递归,可以解决所有这类问题。 总是想着把问题分治,但分治完了却没想到可以还原回去。。。 二、问题 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每…

   41   2021-03-01   去看看

LeetCode188. 买卖股票的最佳时机IV

一、思路 选择是有上限的,10张彩票让你买,你最多也只能买10张。 为什么在乎这个选择的数量呢?因为我将题目中的无限次可交易次数作为了选择:选一次交易次数,选两次交易次数。然后取最优的选择。 动态规划的精髓就是找出选择项,再去做选择 二、问题 给定一个整…

   41   2021-02-28   去看看

LeetCode123. 买卖股票的最佳时机III

一、思路 找出选择和状态 二、问题 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。   示例 1: …

   31   2021-02-28   去看看

LeetCode122. 买卖股票的最佳时机II

一、思路 找出选择和状态 二、问题 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之…

   30   2021-02-28   去看看

LeetCode121. 买卖股票的最佳时机

一、思路 找出选择和状态 二、问题 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这…

   25   2021-02-28   去看看

LeetCode986. 区间列表的交集

一、思路 这个区间问题,在两个列表里,互相比较。采用双指针是实现这个过程。 分为两种情况,相交和不相交。相交情况,end取两个区间的最大值。不相交时,看哪个区间大,当前的end是小的区间的最大值。下一对start,end取大的个区间。 什么时候指针移动呢?根据两…

   19   2021-02-28   去看看
加载更多
友情链接
标签
文章归档
近期文章