我的FastIO工具类

前言:Java做算法题的弊端,力扣只需要完成一个函数,其他oj平台要求使用Scanner类在控制台输入输出,其中pat最后一个测试用例是大量数据,因此java在pat中经常超时,这时候可以采用带缓存的reader和buffer而不是System.in/out。


这个工具类,复制即可直接食用,都是静态方法,通过FastIO.xx就可以使用

方法名保持和Scanner/System.out一致

84-柱状图中的最大矩形

前言:实习的公司真是个学习的好地方,展南安排任务慢慢开始对接测试人员,学宇教我上班划划水!有问题就去烦萌萌!嘿嘿,今天看到萌萌在刷力扣,给我发来了这道题

力扣原题https://leetcode-cn.com/problems/largest-rectangle-in-histogram/

题目我就不贴了,关键是第一次接触到单调栈。

Java二叉树的层次遍历

1. 层次遍历和BFS

之前写过二叉树的前中后序遍历,不懂的点这里,今天介绍的是层次遍历,层次遍历概念很简单,我直接盗用力扣上面的图了,采用BFS也是显而易见的

对比图

56-合并区间

力扣56

https://leetcode-cn.com/problems/merge-intervals/

给出一个区间的集合,请合并所有重叠的区间。

示例1

252-会议室

力扣252 / lintcode920 / 字节原题 会议室

https://www.lintcode.com/problem/meeting-rooms/description

给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。

示例1

160-相交链表

力扣160 / 剑指offer52

https://leetcode-cn.com/problems/intersection-of-two-linked-lists/

这题有坑,题目描述的不清楚。这题意思是节点地址相同(而不只是值)。

思路:让A末尾接上B组成(AB),B的末尾接上A(组成BA),这样两个链表长度就相同了,遍历他们得到相同的节点就是交点

121-买卖股票的最佳时机

力扣第121题 剑指offer第63题 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。

根据两序遍历推出第三序以及构建树

前言:太久了都快忘了,最近做了一下笔试题遇到这题,发现经常考这种题,先把技巧记录下来,有了技巧后简直不要太轻松

1. 树的三种遍历

  • 前序遍历(根左右)
  • 中序遍历(左根右)
  • 后序遍历(左右根)

Java实现树的遍历及二叉树可视化

1. 树的遍历说明

  • 前序遍历(根左右)

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×