05 2022 档案
【LeetCode数组相关】中心下标、旋转图像、零矩阵
摘要:LeetCode724.寻找数组的中心下标 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端
【算法day6】哈希表、有序表、链表(反转单链表)
摘要:哈希表的简单介绍 1)哈希表在使用层面上可以理解为一种集合结构 2)如果只有key,没有伴随数据value,可以使用HashSet结构(C++中叫UnOrderedSet) 3)如果既有key,又有伴随数据value,可以使用HashMap结构(C++中叫UnOrderedMap) 4)有无伴随数据
【算法day5】排序算法的稳定性及其汇总
摘要:稳定性 定义:值相同的元素在排序完成之后能否保证原有的次序不变(同样值的个体之间,如果不因为排序而改变相对次序,这个排序就是有稳定性的,否则就没有) 举例: [2,1,3,1]-->[1,1,2,3] ① ② ① ② 在排完序后,第一个1和第二个1的次序还是一样的 在基础数组中,排序的稳定性用处不大
【算法day4】堆结构、堆排序、比较器以及桶排
摘要:堆与堆结构(优先级队列结构) 知识点: 堆结构就是用数组实现的完全二叉树结构 完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 堆结构的heaplnsert与heapify操作 堆结构的增大和减少 优先级队列结构,就是堆结构 一段连续的数组是可以
【算法day3】小和、荷兰国旗、快排
摘要:小和问题 现有数组[1,3,4,2,5] 1左边是0(小于1),所以1的小和为0 3左边是1(小于3),所以3的小和为1 4左边是1、3(均小于4),所以4的小和为1+3=4 2左边是1、3、4(只有1小于2),所以2的小和为1 5左边是1、3、4、2(均小于5),所以5的小和为1+3+4+2=10
【算法day2】复杂度和简单排序算法(2)
摘要:插入排序 有以下数组 数组:[2,4,3,6,1] 序号:[0,1,2,3,4] 第一次排序(范围0~0):2左边没东西,不动 第二次排序(范围0~1):4左边是2,4大不动 第三次排序(范围0~2):3左边是4,移动,再左边是2,3大不动 第四次排序(范围0~3):以此类推,直到排序结束 这个过程