avatar
文章
31
标签
24
分类
21

主页
归档
标签
分类
友情链接
Abacteria的学习小站
搜索
主页
归档
标签
分类
友情链接

Abacteria的学习小站

三叉树求最大路径和
发表于2022-10-12|更新于2022-10-13|笔试题
二叉树的最大路径和 LeetCode 124.二叉树的最大路径和 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 输入:root = [-10,9,20,null,null,15,7]输出:42解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42 代码实现: class Solution { int maxSum = Integer.MIN_VALUE; public int maxPathSum(TreeNode root) { maxGain(root); return maxSum; } public int maxGain(TreeNode node) { if (node == null) { ...
Kafka学习之路
发表于2022-09-27|更新于2022-10-26|Java技术栈Kafka
架构 Producer:消息⽣产者,向 Kafka Broker 发消息的客户端。 Consumer:消息消费者,从 Kafka Broker 取消息的客户端。Kafka支持持久化,生产者退出后,未消费的消息仍可被消费。 Consumer Group:消费者组(CG),消费者组内每个消费者负责消费不同分区的数据,提⾼消费能⼒。⼀个分区只能由组内⼀个消费者消费,消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的⼀个订阅者。 Broker:⼀台 Kafka 机器就是⼀个 Broker。⼀个集群(kafka cluster)由多个 Broker 组成。⼀个 Broker 可以容纳多个 Topic。 Controller:由zookeeper选举其中一个Broker产生。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群。 Topic:可以理解为⼀个队列,Topic 将消息分类,⽣产者和消费者⾯向的是同⼀个 Topic。 Partition:为了实现扩展性,提⾼并发能⼒,⼀个⾮常⼤的 Topic 可以分布到多个 Broke ...
波形排列的字符串
发表于2022-09-13|更新于2022-10-05|笔试题
题目描述 输入一个宇符串s和正整数numRows,对宇符串s按规则进行波形排列,然后按规则输出新的宇符串。 波形排列规则如下: 1.波峰和波谷的宽度固定为3; 2.波形高度为rowNums; 3.从左到右,从下到上排列rowNums个宇符,从在到右排列3个宇符,从下到上rowNums个字符,以此类推。 宇符串输出规则: 从上到下逐行读取,每行从左到右读取。 例如,输入“ABCDEFGHIJKLMNOPQ”3,则排列形状如下: E F G M N O D H L PA B C I J K Q输出"EFGMNODHLPABCIJKQ" 代码实现 class Solution{ public String convert(String str, int numRows){ int len = str.length(); if(len < 3)return str; int i = 0; String[] waves = new String[ ...
LeetCode 59.螺旋矩阵II
发表于2022-09-12|更新于2022-10-04|LeetCode数组与矩阵
螺旋矩阵II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]] 方法:模拟 算法思路: 定义当前上下左右边界t,b,l,r,初始值num = 1,迭代终止值tar = n * n; 按顺序填入空矩阵,填完一条边时,边界要收缩。 以num <= tar作为循环条件,而不是l < r || t < b,以防n为奇数时,矩阵中心数字无法填充。 代码实现: class Solution { public int[][] generateMatrix(int n) { int[][] ans = new int[n][n]; int l = 0, t = 0, r = n - 1, b = n - 1; int tar = n * n; int num = 1; while(num <= tar){ ...
邻接表
发表于2022-09-10|更新于2022-10-03|笔试题
邻接表 形如1一>3这样的式子是推导式,说明结论1可以推导出结论了。 显然这样的推导式具有传递性: 如果1一>3且3一>5,那么肯定满足1一>5。 现在给出n个推导式,你需要输出结论C能够推导出多少个不同的结论。 显然任何结论都可以推导出自己。 输入描述:第一行输入两个整数n和c,含义如题意所述。接下来n行,每行输入两个整数x,y,表示一个推导式x->y,可能会出现重复的推导式。(1 <= n <= 10^5),(1 <= x,y,c <= 10000)输出描述:输出一个整数,表示结论c能推导出的不同结论的数目。示例1:输入:5 11 21 33 94 28 1输出:4说明:根据推导式1一>2,1一>3,3一>9,可以判断出结论1可以推出结论2,3,9,加上本身总共4个结论。 代码实现 算法思路: 建立哈希表edges,记录每个数字所能推导的结论。 建立队列que,记录起始结论以及后续推导出的结论。 建立HashSet集合res,记录最终答案。 建立哈希表,去除重复,以防循环推导。 import java. ...
Java设计模式
发表于2022-09-02|更新于2022-09-28|Java基础设计模式
LeetCode 28.实现strStr()
发表于2022-08-19|更新于2022-09-19|LeetCode字符串
实现strStr() 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 输入:haystack = "sadbutsad", needle = "sad"输出:0解释:"sad" 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0 。 方法:KMP算法 算法思路: 构建next数组。next数组是前缀表,记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀。 int i = 1; //i,j两个指针int j = 0;int[] next = new int[n];while (i < n) { if (needle.charAt(i) != needle.charAt(j) && j != 0) { j = next ...
卷积运算
发表于2022-08-18|更新于2022-10-03|笔试题
卷积运算 卷积神经网络使用卷积操作来提取特征,卷积一般包含以下几个概念: 输入:一个m∗nm*nm∗n大小的矩阵,是一个二维数组,是图像的数据信息。 卷积核:一个k∗lk*lk∗l大小的矩阵,是一个二维数组,kkk,lll为奇数,保证卷积核有一个中心。 卷积操作:将卷积核的中心对准输入的某个元素,两个矩阵的重合区域中的对应元素相乘后求和,得到输出数组中对应元素的数据。 输出:将卷积核滑动过程的卷积结果按照顺序放入一个二维数组中,即图像卷积的输出。 滑动步长:卷积核每次滑动的距离,本题中为1。 本题中,当输出中元素小于0时要变更为0,当输出中的元素大于255时要变更为255。 输入:第一行为M、N、K、L,后为图像矩阵和卷积矩阵。5 6 3 31 1 1 1 1 11 2 2 2 2 12 3 3 1 2 21 2 2 3 4 55 6 6 6 3 41 10 11 20 11 8 1输出:31 41 42 42 41 3152 84 84 69 74 5165 107 109 79 106 9891 137 139 138 145 161118 154 157 165 118 1 ...
Redis学习之路
发表于2022-08-15|更新于2022-10-19|Java技术栈Redis
redis 基本概念:Redis(Remote Dictionary Server),即远程字典服务,是基于内存的(Mysql基于硬盘),Key-Value数据库,是NoSQL(非关系型数据库)。 支持的数据类型 Key仅支持String类型,而Value支持多种类型: String:采用类似数组的形式储存。 List:双向链表实现。 Hash:基于拉链法实现,储存时将index和00000011相与,去最后两位,以防超出限制。 Set:不重复的集合。 Sorted Set:多了一个权重参数score,集合内元素能够按score进行排列。 持久化 RDB(Redis DataBase):把目前redis内存中的数据,生成一个快照(RDB文件),保存在硬盘中,如果发生事故,redis可以通过RDB文件,进行文件读取,并将数据重新载入内存中,是一种全量备份。 可手动触发(save命令、bgsave——会fork一个子进程去执行) 可自动触发(配置文件写入save m n,代表m秒内发生n次变化,会自动执行bgsave)。 AOF:记录之后所有对redis数据进行修改的 ...
LeetCode 494.目标和
发表于2022-08-11|更新于2022-09-23|LeetCode动态规划
目标和 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。 返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。 输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最终目标和为 3 。-1 + 1 + 1 + 1 + 1 = 3+1 - 1 + 1 + 1 + 1 = 3+1 + 1 - 1 + 1 + 1 = 3+1 + 1 + 1 - 1 + 1 = 3+1 + 1 + 1 + 1 - 1 = 3 0 - 1背包 算法思路: 要使表达式结果为target,可将式子分为加法部分plus和减法部分neg,根据neg = sum - plus和plus - neg = target可得,plus = (target + sum) / 2。问题就转化为 ...
12…4
avatar
Abacteria
文章
31
标签
24
分类
21
Follow Me
最新文章
三叉树求最大路径和2022-10-12
Kafka学习之路2022-09-27
波形排列的字符串2022-09-13
LeetCode 59.螺旋矩阵II2022-09-12
邻接表2022-09-10
分类
  • Java基础2
    • 并发1
    • 设计模式1
  • Java技术栈3
    • Kafka1
    • Redis1
    • Spring51
  • LeetCode19
标签
Kafka线程递归二叉树哈希集合双指针锁回溯位运算KMP算法动态规划0-1背包模拟数学遍历Redis八股文SpringIOChexo博客字符串数组邻接表算法
网站资讯
文章数目 :
31
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2024 By Abacteria
框架 Hexo|主题 Butterfly
你怎么睡的着的😠
搜索
数据库加载中