2022年10月25日 #

215. 数组中的第K个最大元素

摘要: 215. 数组中的第K个最大元素 优先队列的思路是很朴素的。由于找第 K 大元素,其实就是整个数组排序以后后半部分最小的那个元素。因此,我们可以维护一个有 K 个元素的最小堆: 如果当前堆不满,直接添加;堆满的时候,如果新读到的数小于等于堆顶,肯定不是我们要找的元素,只有新遍历到的数大于堆顶的时候, 阅读全文

posted @ 2022-10-25 16:33 老菜农 阅读(30) 评论(0) 推荐(0) 编辑

2022年10月22日 #

leetcode-347. 前 K 个高频元素

摘要: 347. 前 K 个高频元素 建立一个map集合第一个元素代表当前的数字,第二个元素代表出现的次数 以元素出现次数作为排序标准建立小根堆 遍历map加入到堆中,当堆的长度为k的时候,堆中存储的就是当前的前K个高频元素,堆顶是出现次数最少的元素 当遍历到下一个map元素,比较一下当前数出现次数与堆顶的 阅读全文

posted @ 2022-10-22 21:13 老菜农 阅读(15) 评论(0) 推荐(0) 编辑

2022年10月17日 #

leetcode-96. 不同的二叉搜索树

摘要: 96. 不同的二叉搜索树 首先,我们要知道二叉搜索树的性质,对于一个二叉搜索树,其 【左边的节点值 < 中间的节点值 < 右边的节点值】 也就是说,对于一个二叉搜索树,其中序遍历之后形成的数组应该是一个递增的序列 这样我们遍历刚刚的nums数组,以值i(注意不是下标)当做根节点,其左边有i-1个节点 阅读全文

posted @ 2022-10-17 14:15 老菜农 阅读(18) 评论(0) 推荐(0) 编辑

leetcode-240. 搜索二维矩阵 II --z字搜索

摘要: 240. 搜索二维矩阵 II Z字搜索法,持续缩小 target 可能在的范围,从右上角进入矩阵开始搜索,左下角也是一样的,但是不能从左上角或右下角开始 范围:x再大也不能超过矩阵宽度,y再小也不能小于0 如果此处的数大于target,由于从左向右严格递增,则y--向左寻找更小的数 如果此处的数小于 阅读全文

posted @ 2022-10-17 14:12 老菜农 阅读(26) 评论(0) 推荐(0) 编辑

2022年10月14日 #

leetcode-55. 跳跃游戏

摘要: 每一次起跳看看能否到达下一位置 设置k为每次起跳最远能到哪里 循环遍历,i为当前所在格子,每次判断一下k能否达到当前格子 每次循环维护k,k一直为能最远跳到的距离,取上次k与当前格子+当前能跳到最远的距离的最大值。 public boolean canJump(int[] nums) { int k 阅读全文

posted @ 2022-10-14 14:25 老菜农 阅读(12) 评论(0) 推荐(0) 编辑

leetcode-62. 不同路径 初级dp

摘要: 62. 不同路径 首先,机器人每次走路只能向下或者向右走一步根据网格是m*n,初始化动态规划数组,dp[m][n],那么如果机器人走到i,j位置,有多少种情况呢?首先分成子问题,机器人怎么走到i,j前一个位置的呢?前一个位置可能是从i-1, j走来的,也有可能是从i, j-1走来的 然后我们再考虑初 阅读全文

posted @ 2022-10-14 09:44 老菜农 阅读(13) 评论(0) 推荐(0) 编辑

2022年10月13日 #

leetcode-49. 字母异位词分组

摘要: 49. 字母异位词分组 首先根据题意得知,异位词指的是不同词中字母相同 拆分这个词为char[]数组,经过排序char[]数组,再转换为字符串key,如果有两个key是一样的,就说明这两个词为异位词 把这个key当作map集合的键,维护一个list作为map的值,每次如果搜到了相同的key就添加到l 阅读全文

posted @ 2022-10-13 16:03 老菜农 阅读(17) 评论(0) 推荐(0) 编辑

RabbitMQ如何保证消息的可靠性

摘要: 如何确保RabbitMQ消息的可靠性 对于生产者,开启生产者确认机制,确保生产者的消息能到达队队列 对于mq,开启持久化功能,确保消息未消费前在队列中不会丢失 对于消费者,开启消费者确认机制为auto,有spring确认消息处理成功后完成ack 开启消费者失败重试机制,并设置MessageRevoc 阅读全文

posted @ 2022-10-13 00:14 老菜农 阅读(277) 评论(0) 推荐(0) 编辑

2022年10月12日 #

leetcode-155. 最小栈

摘要: 155. 最小栈 首先关键是动态维护最小值,就是弹出元素为最小值的时候,如何知道次最小值 可以使用一个辅助栈mStack,mStack只用于存储push路径上的所有曾经的最小值,mStack的栈顶一直都是stack中的最小值 当第一次push val,或者后续每次push的时候小于mStack,就向 阅读全文

posted @ 2022-10-12 22:41 老菜农 阅读(14) 评论(0) 推荐(0) 编辑

2022年10月11日 #

leetcode-394.字符串解码

摘要: 394. 字符串解码 public String decodeString(String s) { Stack<Character> stack = new Stack<>(); for(char c : s.toCharArray()){ if(c != ']'){//如果不是']'把所有字符加入 阅读全文

posted @ 2022-10-11 13:33 老菜农 阅读(8) 评论(0) 推荐(0) 编辑

导航