leetcode
文章平均质量分 76
算法学习笔记
梧杵
主搞Java后端开发,额外会点前端
展开
-
Java研发岗面试手撕必背算法82道
有⼀些题我们不管是什么难度都必须掌握的Hard会⼀些⾼频即可;主攻Medium,反复做,略加回忆思考就可以写出;Easy的题⼀秒钟都不许卡这不是竞赛,真的不需要智⼒,只需要你努⼒,不断重复+少量思考总结即可。没那么多⼈有时间给你出新题,绝⼤多数正常⾯试都是原题。字节等公司可能让你⾃⼰写测试⽤例,平时注意练⼀下。作者目标:吃透一道就换成超链接。原创 2023-04-12 12:58:20 · 1941 阅读 · 2 评论 -
【2023华为OD机试题】分奖金
按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得“距离 * 数字差值”的奖金。维护一个递减的单调栈,每次遍历一个元素,判断是否比栈顶元素大,如果大的话,就将栈顶元素弹出,直至栈顶元素大于当前正在遍历的元素。栈中存的是每个元素的下标,弹出的这些元素第一个比它大的元素就是当前遍历的元素,那就可以计算当前弹出元素所获得的奖金。直接从下一个开始遍历,找到第一个比自己大的数,有的话,自己的奖金就是这个数减自己的数,没有的话,自己的奖金就是本身随机数。第二是每位员工分配的随机数字。原创 2023-03-16 21:27:35 · 1764 阅读 · 1 评论 -
【leetcode】接雨水问题
很明显每个柱子顶部可以储水的高度为:该柱子的左右两侧最大高度的较小者减去此柱子的高度。因此我们只需要遍历每个柱子,累加每个柱子可以储水的高度即可。此方法非常好理解,直接看下述👇代码中的注释即可。2、动态规划 时间O(N) 空间O(N)在上述的暴力法中,对于每个柱子,我们都需要从两头重新遍历一遍求出左右两侧的最大高度,这里是有很多重复计算的,很明显最大高度是可以记忆化的,具体在这里可以用数组边递推边存储,也就是常说的动态规划DP。具体做法:源码:3、双指针 时间O(N) 空间O(1)在上述原创 2022-12-01 15:06:40 · 959 阅读 · 0 评论 -
【leetcode】岛屿类问题的通用解法
岛屿问题是一类典型的网格问题。每个格子中的数字可能是 0 或者 1。我们把数字为 0 的格子看成海洋格子,数字为 1 的格子看成陆地格子,这样相邻的陆地格子就连接成一个岛屿原创 2022-10-21 20:25:07 · 1654 阅读 · 0 评论