算法学习笔记
算法学习笔记
星_Kong
在漫漫人生中拾起的那一辈子的初心不改
展开
-
归并排序及其常见面试题
在一个数组中,任何一个前面的数a,和任何一个后面的数b,如果(a,b)是降序的,就称为降序对。在一个数组中,对于任何一个数num,求有多少个(后面的数*2)依然<num,返回总个数。在一个数组中,一个数左边比它小的数的总和,叫该数的小和。所以数组的小和为1+1+3+1+1+3+4+2=16。5左边比5小的数:1、3、4、 2。所有数的小和累加起来,叫数组小和。例子: [1,3,4,2,5]4左边比4小的数:1、3。1左边比1小的数:没有。3左边比3小的数:1。2左边比2小的数:1。原创 2023-04-19 00:27:14 · 92 阅读 · 0 评论 -
单双链表、栈和队列、递归和Master公式、哈希表和有序表的使用和性能
用递归行为得到数组中的最大值,并用master公式来估计时间复杂度。评估递归复杂度的Master公式。哈希表和有序表使用的code展示。在链表中删除指定值的所有节点。实现有getMin功能的栈。反转单链表、反转双链表。用环形数组实现栈和队列。用双链表实现栈和队列。原创 2023-04-19 00:25:37 · 102 阅读 · 0 评论 -
复杂度-对数器-简单排序和二分法
给定一个数组arr,已知任何两个相邻的数都不相等,找到随便一个局部最小位置返回。arr[i-1] > arr[i] < arr[i+1],i位置是局部最小;arr[N-1] < arr[N-2],N-1位置是局部最小;arr[0] < arr[1],0位置是局部最小;时间复杂度、空间复杂度、估算方式、意义。有序数组中找到>=num最左的位置。有序数组中找到<=num最右的位置。选择排序、冒泡排序、插入排序。选择排序及其对数器验证。冒泡排序及其对数器验证。插入排序及其对数器验证。有序数组中找到num。原创 2023-04-19 00:13:36 · 71 阅读 · 0 评论 -
学习异或运算和相关题目
一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数。一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这种数。任何数和自己异或运算都得到0,因为每一位都相同,异或结果是0。怎么把一个int类型的数,提取出二进制中最右侧的1来。一个数组中有一种数出现K次,其他数都出现了M次,已知M > 1,K < M,找到出现了K次的数。要求额外空间复杂度O(1),时间复杂度O(N)不用额外变量交换数组中两个数的值。不用额外变量交换两个数的值。原创 2023-04-19 00:04:38 · 80 阅读 · 0 评论 -
算法基础汇总
算法基础汇总原创 2023-03-31 11:12:38 · 86 阅读 · 0 评论