0%

KMP算法:

​ KMP (Knuth-Morris-Pratt) 算法是一种用于字符串搜索的算法,可以在一个文本串S内查找一个词W的出现位置。

基本思想是,当子串与目标字符串不匹配时,其已知足够的信息能确定下一步的搜索不会导致目标字符串的漏检。这样,算法就不会进行无效的检查。

下面是KMP算法的步骤:

  1. 构造一个”部分匹配表”(也称为 “失败函数”)。这是一个数组,对于给定的查找词,表中的每个元素都包含了当匹配失败时查找词应该跳转的位置。
  2. 使用这个表来进行字符串搜索。当在文本串中发生匹配失败时,可以直接跳过前面已知不会匹配的部分。
阅读全文 »

Target:

由于工作时Confluence中的文件太多,也比较杂乱,难以阅读,所以希望基于chatGPT能够帮助我快速从文件中获取我想要的知识

阅读全文 »

Q:

给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。

你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。

阅读全文 »

LeetCode-934

Question:

给你一个大小为 n x n 的二元矩阵 grid ,其中 1 表示陆地,0 表示水域。

是由四面相连的 1 形成的一个最大组,即不会与非组内的任何其他 1 相连。grid恰好存在两座岛

你可以将任意数量的 0 变为 1 ,以使两座岛连接起来,变成 一座岛

返回必须翻转的 0 的最小数目。

阅读全文 »

springboot+cucumber实践

why BDD

  • 满足业务目标。
  • 关注用户需求
  • 良好的可读性

其实对于我自己来说,也有其他原因:

1.因为客观原因,有时候项目开发结束后才拿到PRD,所以在开发前期,通过一些方式确定明确的业务流程会比直接上手开发可以更容易的发现问题。相比较DD文档,BDD的feature可能是对于非开发人员更易懂的方案。

2.因为文档往往存在滞后,帮助将来的自己或是其他接手的同学去更快的回顾或是了解某个业务的诉求。

阅读全文 »

前言

​ 链表、队列、栈,是数据结构中最基础的几个结构,而链表是最基础的。之后的复杂数据结构大都是在其基础上演化出来的。

链表

​ 一种线程数据结构,与数组不同的是,它在内存空间中不一定是顺序存储的,为了保证链表中元素的连续性,一般使用一个指针来找到下一个元素。

linkedlist

阅读全文 »

​ 很早之前就有一个想要搭建个人博客的想法,但是由于学业,工作等原因一直没有付诸于实践。在入职新公司后,由于有了时间,加上一些个人原因,使得我决定开始搭建一个简单的个人blog。Blog中将会记录我的在技术上遇到的一些问题和尝试,以及记录自己的学习和成长过程。