摘要:
只面一家,一发入魂 秋招已经拿到我梦中情司的offer了,所以春招打算什么都不投,享受美好的校园生活的。然后在恰饭的时候接到华为春招宣传的电话,那反正没事干,那就面着玩玩咯。 最终是拿到了 华为-流程化it-数字化it应用开发工程师 的offer,ps:不是od,是校招正式员工。 因为拒掉了这里可以 阅读全文
摘要:
写在前面的话 这是一名广外大四计算机系的一名普通学生写的一篇普通总结博客,总结下从大三下的找实习到大四秋招的历程。 大三下——迷茫与彷徨 当我进入大三下,发现大学生活像是加速了一样。当身边的同学开始讨论找哪家实习、拿了哪家公司实习的offer的时候,我发现——要开始准备找工作了。博主那时候还没有比较 阅读全文
摘要:
简述 什么是树状数组呢,顾名思义就是树一样的数组,本质就是用数组模拟树形结构。 树状数组有什么用呢,树状数组可以实现单点更新,单点查询,区间查询和区间更新,维护的东西和线段树可以类比的,就是满足区间加法性质的属性,例如最值,和,gcd等。 树状数组可以干的东西线段树也能干,但线段树干的东西树状数组不 阅读全文
摘要:
简述 Manacher算法,又称马拉车算法,它是用于求一个字符串的最长回文子串长度的算法,时间和空间复杂度为O(n)。 算法思想 求一个字符串的最长回文子串长度,我们如果用暴力来做,我们就要取出这个串的所有子串,然后判断这个子串是不是回文串,复杂度是n方的。 那么马拉车为何如此神奇能做到O(n)呢? 阅读全文
摘要:
简述 权值线段树是线段树的一种,可以实现平衡树的基本操作,权值线段树的节点维护的是这个区间的数的出现次数,例如区间序列为1 2 2 3 3 3,那么该节点的值为6。权值线段是可以在logn的时间内求出全局的k小值,某数在全局的rank,一个数的前驱或者后继。因为是线段树的一种所以思想也是二分,其本质 阅读全文
摘要:
综述 线段树是一颗二叉搜索树,树的每一个节点均维护着区间信息,线段树根节点的区间信息可通过左子树和右子树的信息计算出(也就是我们说的满足区间加法)。 常见的几种区间加法: 总的数字之和=左区间的数字和+右区间的数字和 总的gcd=gcd(左,右) 总的数字乘积=左区间乘积*右区间乘积 总的最大值=m 阅读全文
摘要:
普通快速幂 快速幂就是快速求an,直接for循环的时间复杂度是o(n),比较low。那么如何提高时间复杂度呢,幂的本质是连乘,其中b可以写成二进制,拆成2的幂。拿a的11次方为例,11的二进制是1011,所以可以得到11=20+21+23,于是,a的11次方可以写成a^20 * a^21 * a^2 阅读全文
摘要:
100352. 交换后字典序最小的字符串 给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。 如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。 思路 从 阅读全文
摘要:
简述 use函数是kotlin的语法糖,用于在使用资源(如文件、流等)后自动关闭它们。使用 use 函数可以确保资源在不再需要时被正确释放,从而避免资源泄漏和其他问题。 和我们写try with resource是一样的,使用use会自动close资源 use函数只能用于实现了 Closeable 阅读全文
摘要:
简述 作为一名devloper,工作中可不是只有coding的,我们还要与team里的其他人进行team work,在有英语背景项目中,一些必备的《话术》能让我们更专业,让同事和老外都觉得我们是有礼貌的。 通用类 你对某一块内容的细节还不清楚时: Is it possible for you to 阅读全文
摘要:
简述 keycloak是一个针对现代应用程序和服务的开源身份和访问管理解决方案,本质就是个中间件,keycloak支持单点登录SSO,服务可通过OpenID Connect、OAuth 2.0 等协议对接 Keycloak SSO单点登录 SSO指的是Single Sign On,中文是单点登录。指 阅读全文
摘要:
简述 如果在项目中,我们想在项目启动的时候干一些事情,比如从数据库加载一些数据、提前加载加密证书,并且这些功能只干一次 我们就可以使用CommandLineRunner完成我们的需求,我们可以继承CommandLineRunner接口,实现其run方法 这样在springboot启动的时候会自动运行 阅读全文
摘要:
简述 mockk和mockito类似,都是在测试环境下制造test double的测试框架 在kotlin环境下mockk比mockito更加优秀 mockito在kotlin的缺陷 mockito的when方法在kotlin是关键字,需要加反引号才能使用 在kotlin里所有class都是fina 阅读全文
摘要:
简述 在开发者经常会涉及和excel的交互,如将数据库的数据导出到内存中,如将excel的数据导入到内存中。 常用的方式有两种——poi和java excel,其中常用的是poi POI的全称是Poor Obfuscation Implementation,中文是可怜的模糊实现(笑),POI是用Ja 阅读全文
摘要:
简述 JOOQ,全称是Java Object Oriented Querying面向java对象查询,是一个ORM框架。利用其生成的Java代码和流畅的API,可以快速构建有类型约束的安全的SQL语句。 本质是在java语言层面,用java以流的方式生成对应sql语句。JOOQ会将数据库的数据映射成 阅读全文
摘要:
简述 kotlin有三个集合类型——list set map,kotlin标准库提供了一整套用于管理集合的工具 这些集合接口与相关函数位于 kotlin.collections 包中 kotlin的集合分为可变集合类Mutable和不可变集合类Immutable,List、Set、Map都是不可变集 阅读全文
摘要:
协程 协程是语言层面的东西,线程是系统层面的东西 协程,本质上是一个线程框架,解决了异步编程时过多回调的问题 线程的切换会耗费系统资源,协程可以理解为线程里的‘多线程’,当然我们也可以直接理解这里的协程是线程,底层实现我们可以不深究 launch和runblocking launch和runbloc 阅读全文