数据结构算法
文章平均质量分 70
吹吹晚风-
一名普通大学生
展开
-
栈和队列(一)
栈(Stack)和队列(Queue)是计算机科学中常用的数据结构,它们在算法和程序设计中扮演着重要的角色。原创 2024-03-23 22:20:32 · 410 阅读 · 1 评论 -
数据结构-哈希表(二)
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。循环遍历时间复杂度为O(n^2)整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2024-03-18 21:27:24 · 1289 阅读 · 10 评论 -
数据结构-哈希表(一)
哈希表(Hash Table),也称为散列表,是一种常见的数据结构,用于存储键值对。它通过将键映射到一个特定的索引位置来实现高效的数据访问和查找。下面是哈希表的基本原理和操作:哈希函数(Hash Function):哈希表使用哈希函数将键映射到索引位置。哈希函数将任意大小的输入映射为固定大小的输出,通常是一个整数。优秀的哈希函数应该将不同的键均匀地映射到不同的索引位置,以减少冲突。数组存储桶:哈希表内部使用一个固定大小的数组作为存储桶。原创 2024-03-16 21:18:08 · 752 阅读 · 1 评论 -
矩阵 螺旋矩阵
提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。所有元素,且元素按顺时针顺序螺旋排列的。,返回矩阵中的所有元素。:从左上角开始,按照。原创 2024-03-11 19:45:31 · 621 阅读 · 3 评论 -
数据结构-链表(二)
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。[2,1,4,3]给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。[1,2,3,5]原创 2024-03-13 19:52:02 · 327 阅读 · 0 评论 -
数据结构-链表(一)
链表(Linked List)是一种常见的数据结构,用于存储和组织数据。与数组不同,链表的元素(节点)在内存中不必连续存储,而是通过指针链接在一起。链表由多个节点组成,每个节点包含两部分:数据(存储实际的元素值)和指针(指向下一个节点的引用)。链表的第一个节点称为头节点,最后一个节点称为尾节点,尾节点的指针通常指向空值(null)。下面是链表的一些基本特点和操作:动态性:链表的长度可以根据需要动态增长或缩小,不需要预先分配固定大小的空间。原创 2024-03-12 21:33:06 · 1535 阅读 · 5 评论 -
三大排序:冒泡、选择、插入
它的原理是在未排序部分中选择最小(或最大)的元素,并将其放置在已排序部分的末尾。尽管插入排序的性能在大规模数据集上比其他高级排序算法略逊一筹,但在小型或部分有序的数组上,插入排序的效率较高,并且它的实现较为简单。它通过比较相邻元素的大小,并交换它们的位置,使较大(或较小)的元素逐渐“浮”到数组的一端,从而实现排序的目的。将较大(或较小)的元素交换到右侧,这样一次遍历之后,最大(或最小)的元素就会“浮”到数组的末尾。重复上述步骤,每次从未排序部分选择一个最小(或最大)的元素,并将其放置在已排序部分的末尾。原创 2024-03-11 21:13:26 · 1296 阅读 · 3 评论 -
数据结构-滑动窗口
你想要尽可能多地收集水果。最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。可以采摘 [1,2,2] 这三棵树。如果不存在符合条件的子数组,返回。所有字符的子串,则返回空字符串。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。,返回你可以收集的水果的。所有字符的最小子串。可以采摘全部 3 棵树。原创 2024-03-10 08:58:43 · 630 阅读 · 3 评论 -
数据结构-二分查找
3,待查找目标值不在数组中且不在li范围内,[1,2,3,5,5,6,7] target=8。2,3两种情况此时都返回[-1,-1]此时返回值为:[3,4] 2.待查找目标值不在数组中但其大小范围在li中,[1,2,3,5,5,6,7] target=4。首先这个题目分为三种情况,1.待查找目标值在数组中例如:[1,2,3,5,5,6,7] target=5。是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。,如果目标值存在返回下标,否则返回。是一个完全平方数,则返回。原创 2024-03-09 19:53:40 · 324 阅读 · 1 评论 -
力扣刷题日常(二)
原理:第一次从待排序的数据元素中选出最小(或最大的)一个元素,存放在序列的起始位置,然后从剩余的未排序元素中寻找到最小(大)元素,继续放在起始位置直到未排序元素个数为0。大致步骤:1>在序列中选出最小(最大)值放在序列的起始位置2>在从剩余元素中继续寻找最小(最大)值放在未排序的起始位置3>重复2>直到排序完成。原创 2023-12-23 19:55:14 · 751 阅读 · 7 评论 -
力扣刷题日常(一)
给你一个整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间14nums = [1]1本题采用位运算进行解答,首先介绍一下异或运算不同为1,相同为00与任何数进行异或等于任何数。任何数与本身运算等于0,异或满足交换律和集合率本题求出现一次的数,出现偶数次的数异或为0,最后0与出现一次的数异或则等于该数。原创 2023-12-19 20:49:01 · 483 阅读 · 2 评论