首页
博客
源码
资源
博客
源码
写文章
发布博客
发布资源
登录
X
算法
相关资讯
热门
最新
后端
01-01 08:00
后端
算法 | 二分法
在数据结构书籍中,在介绍二分法时,常常会加上有序这个前提条件,其中有序的定义要麽是从大到小排序,要麽是从小到大排序。 那么,有序真的是所有问题求解时使用二分的必要条件吗?答案是:不 只要正确构建左右...
119
后端
01-01 08:00
后端
算法经典面试题 -- 删除链表中的节点(JS)
算法经典面试题 -- 删除链表中的节点(JS),请编写一个函数,用于删除单链表中某个特定节点。在设计函数时需要注意,你无法访问链表的头节点head,只能直接访问要被删除的节点。题目数据保证需要删除的节点不是末尾节点。示例1:输入:head=[4,5,1,9],node=5输出:[4,1,9]解释:指定链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为4->1->9复制代码示例2:输入
114
后端
01-01 08:00
后端
算法小知识------10.16----关于链表的相关算法(2)
算法小知识------10.16----关于链表的相关算法(2),如果链表有环,求出环的长度求出环的长度,可以在之前判断是否有环的基础上,做出修改首先,在确定有环的前提下,求出环的长度在首次两指针相等的节点开始,再次出发,直到再次回到该节点的时候,就证明已经完成一圈了也可以用双指针的方法去实现,双指针在相等节点同时出发,A节点速度比B节点快,当两节点再次相遇时,A节点追上B节点并且超出了相应的距离
112
后端
01-01 08:00
后端
算法:有效三角形的个数
算法:有效三角形的个数,题目给定一个包含非负整数的数组,统计其中可以组成三角形三条边的三元组个数。1.数组长度不超过10002.数组里整数的范围为[0,1000]输入:[2,2,3,4]输出:3解释:有效的组合是:2,3,4(使用第一个2)2,3,4(使用第二个2)2,2,3复制代码分析构成三角形的条件:任意两条边的和大于第三条边,任意两条边的差小于第三条边1.暴力循环暴力的三层循环查找,在每一层
111
代码人生
01-01 08:00
代码人生
算法:二叉树的层序遍历II
算法:二叉树的层序遍历II,前言什么是层序遍历II层序遍历II和二叉树的层序遍历一致,从上到下,从左到右依次打印每个节点中存储的数据,在最后返回前将result向量翻转即可。如下图所示的数据结构:对比四种遍历方式:前序遍历:A→B→D→C中序遍历:B→D→A→C后续遍历:D→B→C→A层序遍历:A→B→C→D层序遍历II:A→B→C→D题目给定一个二叉树,返回其节点值自底向上的层序遍历。(即按从叶
109
后端
01-01 08:00
后端
算法 | 二分法
在数据结构书籍中,在介绍二分法时,常常会加上有序这个前提条件,其中有序的定义要麽是从大到小排序,要麽是从小到大排序。 那么,有序真的是所有问题求解时使用二分的必要条件吗?答案是:不 只要正确构建左右...
106
后端
01-01 08:00
后端
算法总结-直接插入排序
算法总结-直接插入排序,算法定义直接插入排序是插入排序的一种,是一种简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。算法原理直接插入排序算法流程如下:1、将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。代码实现按照上面的思路,可以通
105
后端
01-01 08:00
后端
算法分析(三):删除排序数组中的重复项
算法分析(三):删除排序数组中的重复项,前言这是一道运用到双指针的经典题目,双指针我一直用的不太好,通过这道题巩固一下基础题目网址:leetcode-cn.com/problems/re…双指针解法这道题的暴力解法我都不想说了,就是遍历一遍然后将数组中重复的删除,但是你要循环两次并且你还要消耗大量的空间,所以我们需要想到其他的办法,就用一次循环解决首先有个前提,只是一个有序数组,意思是他已将把数组
104
代码人生
01-01 08:00
代码人生
算法之空间复杂度
算法之空间复杂度,我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法,以此来追求最低的算法复杂度,提升代码质量。复杂度分为时间复杂度和空间复杂度。在介绍时间复杂度之前,先说下大O复杂度表示法。大O复杂度所有代码的执行时间T(n)与每行代码的执行次数n是成正比的可以用一个公式来表示这种关系:T(n)=O(f(n))T(n):表示代码的执行时间n:表示数据规模的大小f(n):表
102
后端
01-01 08:00
后端
算法六 二分查找与二叉排序树(Java实现)
算法六 二分查找与二叉排序树(Java实现),二分查找二分查找又称折半查找。首先,假设表中元素是按升序排列,将表中间位置的关键字与查找关键字比较:1.如果两者相等,则查找成功;2.否则利用中间位置将表分成前、后两个子表:1)如果中间位置的关键字大于查找关键字,则进一步查找前一子表;2)否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。二
99
«
1
2
3
4
5
6
7
8
9
»