LeetCode
文章平均质量分 57
气定神闲的小hao
numb and dying
展开
-
栈与队列-用队列实现栈
请你仅使用一个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop和empty实现MyStackint pop()int top()truefalsesizeis emptyStack S;push(S, 1);push(S, 2);push(S, 3);push(S, 4);push(S, 5);原创 2024-06-04 11:46:13 · 267 阅读 · 0 评论 -
栈与队列-用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalsesizeis empty。原创 2024-06-04 11:17:39 · 283 阅读 · 0 评论 -
字符串-重复的子字符串
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。可由子串 "abc" 重复四次构成。(或子串 "abcabc" 重复两次构成。可由子串 "ab" 重复两次构成。原创 2024-06-03 17:48:10 · 330 阅读 · 0 评论 -
字符串-KMP算法
KMP算法通过预处理模式字符串生成部分匹配表,并在搜索过程中利用这个表来指导字符比较,从而避免了不必要的比较操作,提高了搜索效率。它在处理字符串匹配问题时具有广泛的应用。代码实现// 暴力求解法int i, j;for (i = 0;i原创 2024-06-03 16:01:44 · 327 阅读 · 0 评论 -
字符串-翻转字符串里的单词
151. 反转字符串中的单词给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。原创 2024-05-11 15:43:35 · 249 阅读 · 0 评论 -
字符串-反转字符串II
541. 反转字符串 II给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。原创 2024-05-10 16:40:01 · 277 阅读 · 0 评论 -
哈希表-四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0原创 2024-04-11 14:38:11 · 353 阅读 · 0 评论 -
哈希表-三数之和
不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2024-04-10 19:23:38 · 293 阅读 · 0 评论 -
哈希表-四数相加II
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。原创 2024-04-09 18:52:27 · 409 阅读 · 0 评论 -
哈希表-两数之和
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2024-04-05 12:47:09 · 346 阅读 · 0 评论 -
哈希表-两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。原创 2024-03-28 00:35:34 · 326 阅读 · 0 评论 -
哈希表-有效的字母异位词
那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。暴力的解法,两层for循环,同时还要记录字符是否重复出现,很明显时间复杂度是 O(n^2)。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。再遍历 字符串s的时候,原创 2024-03-27 20:42:01 · 359 阅读 · 0 评论 -
链表-环形链表II
为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。这道题目,不仅考察对链表的操作,而且还需要一些数学运算。原创 2024-03-27 19:06:07 · 272 阅读 · 0 评论 -
字符串-反转字符串
对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]原创 2024-03-27 17:45:30 · 306 阅读 · 0 评论 -
两两交换链表中的节点
这道题目正常模拟就可以了。建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。原创 2024-03-27 16:59:38 · 308 阅读 · 0 评论 -
C语言实现——反转链表
实现对单链表的反转,有三种方法,分别为:双指针法,递归法,头插法。其中,头插法是对当前链表中的所有元素再进行一次头插法,实现链表的反转。反转一个单链表,要求不能申请额外的内存空间。原创 2024-01-04 15:04:34 · 685 阅读 · 0 评论 -
设计链表(C语言实现)
链表是非常基础的数据结构,这里选择使用带有虚拟头结点的链表。设计一个链表类,实现六个接口。原创 2024-01-03 19:06:33 · 405 阅读 · 0 评论 -
移除链表元素
链表删除元素的原理就是,找到要删除元素的节点,让删除元素的前一个结点的next指针指向删除结点next指针指向的元素。有两种删除方法,第一种是直接使用原来的链表进行删除,但是需要处理头结点符合删除条件时候的情况。第二种是使用一个虚拟头结点,最后要把虚拟头结点释放掉。输入:[1→4→2→4],val = 4。在链表中删除指定值的元素。原创 2023-12-22 18:13:01 · 397 阅读 · 0 评论 -
螺旋矩阵II
这道题并不设计具体的算法,就是模拟螺旋打印的过程,考察对代码的掌控能力。给出一个正整数n,从外向内的螺旋顺序打印 1 到 n^2 的所有数值。原创 2023-12-22 15:58:36 · 406 阅读 · 0 评论 -
LeetCode 704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。链接:https://leetcode.cn/problems/binary-search。输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999, 9999]之间。原创 2023-04-12 10:08:03 · 93 阅读 · 0 评论 -
LeetCode 209. 长度最小的子数组
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]给定一个含有 n 个正整数的数组和一个正整数 target。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。原创 2023-04-12 10:50:34 · 160 阅读 · 0 评论 -
LeetCode 977. 有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。链接:https://leetcode.cn/problems/squares-of-a-sorted-array。解释:平方后,数组变为 [16,1,0,9,100]输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]排序后,数组变为 [0,1,9,16,100]输出:[0,1,9,16,100]输出:[4,9,9,49,121]原创 2023-04-12 10:34:24 · 139 阅读 · 0 评论