数据算法
文章平均质量分 76
在这里向大家一起分享一些常见的算法题,并尝试使用不同的思路解题,扩展思路,达到学一题精百题的效果
猴哥敲代码
学海无涯苦做舟...
展开
-
弗洛伊德龟兔赛跑算法
龟兔赛跑算法(Tortoise and Hare Algorithm)又称之为Floyd判圈算法(Floyd Cycle Detection Algorithm)它是一个可以在有限状态机、迭代函数或者链表上判断是否存在环,求出该环的起点与长度的算法。该算法据高德纳称由美国科学家罗伯特·弗洛伊德发明。原创 2023-04-20 19:36:32 · 464 阅读 · 0 评论 -
数据算法之反转链表(五种方法)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]这道题来自力扣的第206题,今天我们尝试使用五种不同的方法来实现链表的反转。原创 2023-04-18 20:48:56 · 6576 阅读 · 0 评论 -
数据算法之打印杨辉三角
正如图片中所看到的,杨辉 三角就长这个样子,杨辉三角具有很多特性,但是在这里我们只使用他的其中 一个特,即:>==每个数等于它上方两数之和。==在这里我们先将杨辉三角斜过来看,简化操作,通过将杨辉三角斜过来看可以得到一个这样的直角三角形:原创 2023-04-12 18:36:50 · 3615 阅读 · 0 评论 -
数据算法之斐波那契数列
斐波那契数列就是在一个数列中,每前两项数数据之和都为第三项数据,这样的数列称之为斐波那契数列。原创 2023-03-06 19:15:47 · 126 阅读 · 0 评论 -
递归问题之栈溢出
递归所产生的的栈溢出问题主要是因为上一层的数据要等待下一层级执行完成之后才可以执行,所以造成了大量的内存占用,使用for循环就可以避免这一问题。● a 返回时发现:没什么可留给 b 的,将来返回的结果 b 提供就可以了,用不着我 a 了,我的内存就可以释放。● b 返回时发现:没什么可留给 c 的,将来返回的结果 c 提供就可以了,用不着我 b 了,我的内存就可以释放。这时a尾调用b,b尾调用c,而只有执行到c时才会依次的向上返回调用结果,但是编译器一般都会对这种尾调用做优化。时,发生了栈溢出的现象;原创 2023-03-06 19:01:52 · 805 阅读 · 0 评论 -
数据算法之插入排序
(这里用升序排序数组举例),插入排序的算法就是将已经排序好的数据全部的放在数组的左边,把没有完成排序的数据放在数组的右边,然后每次从没有排序的数据中每次从左边界依次的取出数据与已经排序的数据进行比较,将数据插入到合适的位置,在进行比较的时候,没有找到插入位置之前,比插入数据小的已经排序的数据都要向未排序区域移动一位,以便给插入数据空出位置,当找到比插入数据小的数据时,将插入数据插入到此数据的前一位,以后数据重复此操作完成排序。原创 2023-03-06 14:50:50 · 54 阅读 · 0 评论 -
数据算法之冒泡排序
(这里用升序排序数组举例),冒泡排序的算法就是将已经排好序的数据都放在数组的右边,未排序的数组放在左边,从数组的初始位置让这个数据一直与它后面的数据进行比较,如果比后面的数据小,则放弃更改,遍历下一位置的数据与后面的数据继续比较,当他比他后面的数据大时,则将二者进行换位,而后重复操作,就可以确保在我们的边界范围内,最大的数在我们的右边界,而后通过递归思想不断的缩小右边界,将未排序的数据依次进行上述操作排序,当右边界为0时说明排序完毕完成递归。原创 2023-03-06 13:35:54 · 150 阅读 · 0 评论 -
数据算法之二分法详解
详细介绍了基础算法二分法,及一些衍生方法。原创 2023-02-26 15:15:10 · 1003 阅读 · 0 评论