摘要: #KMP算法 前缀表:记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀。 前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串。 后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。 ##如何计算前缀表 如图: 长度为前1个字符的子串a,最长相同前后缀的长度为0。(注意字符 阅读全文
posted @ 2022-10-27 10:57 hanqk97 阅读(51) 评论(0) 推荐(0) 编辑
摘要: #反转字符串 题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l"," 阅读全文
posted @ 2022-10-15 05:44 hanqk97 阅读(25) 评论(0) 推荐(0) 编辑
摘要: #四数相加II ##题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。 输入: A = [ 1, 2] B = [-2,-1] C = [-1, 2] D = [ 0, 2] 阅读全文
posted @ 2022-10-02 08:30 hanqk97 阅读(22) 评论(0) 推荐(0) 编辑
摘要: #哈希表理论基础 哈希表是根据关键码的值而直接进行访问的数据结构。 哈希碰撞 拉链法 拉链法就是要选择适当的哈希表的大小,这样既不会因为数组空值而浪费大量内存,也不会因为链表太长而在查找上浪费太多时间。 线性探测法 使用线性探测法,一定要保证tableSize大于dataSize。 我们需要依靠哈希 阅读全文
posted @ 2022-10-02 04:22 hanqk97 阅读(19) 评论(0) 推荐(0) 编辑
摘要: #两两交换链表中的节点 ##题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 题目链接 示例: ##题解 对于奇数个节点,最后一个节点不交换。 结束条件: 对于奇数个节点, cur.next != null 对于偶数个节点, cur.next.next != null // 虚拟头结 阅读全文
posted @ 2022-09-25 15:12 hanqk97 阅读(129) 评论(0) 推荐(0) 编辑
摘要: #链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。 ##单链表 ##双链表 双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。 ##循环链表 循 阅读全文
posted @ 2022-09-25 04:42 hanqk97 阅读(146) 评论(0) 推荐(0) 编辑
摘要: #有序数组的平方 ##题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 题目链接 示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,10 阅读全文
posted @ 2022-09-24 02:11 hanqk97 阅读(275) 评论(0) 推荐(0) 编辑
摘要: #数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标都是从0开始的。 数组内存空间的地址是连续的 因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。 数组的元素是不能删的,只能覆盖。 Java的二维数组可能是如下排列的方式: pu 阅读全文
posted @ 2022-09-22 11:31 hanqk97 阅读(597) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示