自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

转载 单链表反转

看到不错的文章,记录一下:https://www.cnblogs.com/mwl523/p/10749144.html就地反转:思路把当前链表的下一个节点pCur插入到头结点dummy的下一个节点中,就地反转。dummy->1->2->3->4->5的就地反转过程: dummy->2->1->3->4->5 dummy->3->2->1->4->5dummy->4>-3->2-&

2021-02-26 17:18:24 120

原创 RadixSort

马士兵老师的算法课基数排序基数排序算法思想:多关键字排序,按个位十位百位依次排序分配一个0到9的数组count,先从个位排起,把各位按0到9,计数排序;然后排十位…直到排到最高位每次count数组都要归零,一共循环原数组中最大数的位数(如数组里最大是三位数,就循环三次),需要定义一个函数寻找最高位。时间复杂度:O(n*k),k代表了几位数空间复杂度:O(n)寻找最大值的位数:int maxlength(vector<int>& arr) //计算最大值的长

2021-02-25 21:18:40 109

原创 CountSort

马士兵老师的算法课3.计数排序3.计数排序算法思想:使用的限定范围为数据量大但范围小时 开辟两个数组,result负责记录结果,count负责记录每个index出现的个数1.遍历整个数组,得到count计数数组;2.count[i]=count[i-1]+count[i],得到累加数组,目的是记录该index的最后一个的下标;3.从末尾向前遍历原数组,按照累加数组,将对应的数放到result的index-1上代码:class Countsort{public: vector

2021-02-24 20:43:23 92

原创 QuickSort

马士兵老师的算法课2.快速排序2.快速排序算法思想:找一个基准轴(通常是最后一个),比它小的都排在前面,比它大的都排在后面,按左右两个分区,把基准轴放在最后一个比它小的位置的后面,继续找轴,继续排。left从头往后找,right从倒数第二个位置开始往前找,left遇到比pivot小的就++,right遇到比pivot大的就–,如果left<right,left遇到比pivot大的就和right交换。核心partition:int partition(vector<int&gt

2021-02-24 15:12:49 73

原创 马士兵老师的算法课

排序1.归并排序1.归并排序算法思想:递归合并简称归并merge+核心sort不断地分成两个子数组,i开头和j开头,谁小谁挪下来放进temp数组里,然后把i或j剩余的接到temp结尾。sort部分:void sort(vector<int>& arr,int left,int mid,int right) { vector<int> temp(right-left+1); int i=left,j=mid+1,k=0

2021-02-23 18:01:34 454

原创 剑指offer刷题之——动态规划

动态规划1.连续数组的最大和1.连续数组的最大和题目描述:输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n)。思路:典型的动态规划。dp[n]代表以当前元素为截止点的连续子序列的最大和,如果dp[n-1]>0,dp[n]=dp[n]+dp[n-1],因为当前数字加上一个正数一定会变大;如果dp[n-1]<0,dp[n]不变,因为当前数字加上一个负数一定会变小。使用一个变量max记录最大的dp值返回即

2021-02-20 12:18:15 137

原创 剑指offer刷题之——链表

链表1.删除链表中重复的结点1.删除链表中重复的结点题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:非递归:1 . 首先添加一个头节点,以方便碰到第一个,第二个节点就相同的情况2 .设置 p1 ,p2 指针, p1指针指向当前确定不重复的那个节点,而p2指针相当于工作指针,一直往后面搜索。代码:cla

2021-02-08 14:21:41 107

原创 剑指offer刷题之——数组

数组1.斐波那契数列2.旋转数组的最小数字3.数组中出现次数超过一半的数字4.调整数组顺序 使奇数在前,偶数在后1.斐波那契数列题目描述:斐波那契数列公式为:f[n] = f[n-1] + f[n-2], 初始值f[0]=0, f[1]=1,目标求f[n]思路1:普通递归版求法,这种方法通常和汉诺塔一起被放在课本的递归教学部分,应该是面试官不希望看到的算法。int Fibonacci(int n) { if (n==0 || n==1) return n; return Fibo

2021-02-03 15:22:43 138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除