难度 easy 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 解题思路:这里的解题思路还是相对比较简单的,就是用快慢指针找到中间节 ...
分类:
其他好文 时间:
2021-05-04 15:38:36
阅读次数:
0
用回溯法设计求解装载问题的算法,并分析时间复杂度。 装载问题:有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且w1+w2+…+wn<=c1+c2。装载问题要求确定是否有一个合理的装载方案可将这n个集装箱装上这2艘轮船。如果有,找出一种装载方案。 此问题是一个可行 ...
分类:
其他好文 时间:
2021-04-30 12:23:24
阅读次数:
0
算法的五大特征输入:0或者多个输入输出:1或者多个输出有穷性:有限的步骤,可接受的时间确定性:每一步都有确定的意义,不会出现二义性可行性:每一步都是可行的 单靠时间判断算法效率不准确,需要结合硬件和环境时间复杂度:T(n) = n^3*2大o表示法:n^3 数据不同,算法执行不同最优时间复杂度最坏时 ...
分类:
编程语言 时间:
2021-04-29 12:05:40
阅读次数:
0
1. 希尔排序 思路: 是优化了的插入排序,可以改进当最值处于头或尾需要多次移动元素的问题,因为它会设置步长k(>=1),初始步长是len/2, 先保证步长为k的每个子数组有序,再进一步缩小步长直到为1的时候,数组基本有序。 ''' 希尔排序 时间复杂度 平均:O(nlogn) 最好:O(nlogn ...
分类:
编程语言 时间:
2021-04-29 11:58:13
阅读次数:
0
优秀的算法 时间效率高 存储量低 算法效率的度量 为算法编写专门的测试代码 事前估算: 算法采用的方案 编译产生的代码质量 问题的输入规模 机器执行指令的速度 ...
分类:
其他好文 时间:
2021-04-26 14:08:56
阅读次数:
0
Insertion Sort(插入排序) 思路:for 循环遍历数组中的每一个数 用while将每次遍历到的数于左侧的数进行对比,将小的排到左边 void InsertionSort(int*A, int n){ int key,i=0,p; for(p=0;p<n;p++){ key=A[p]; ...
分类:
其他好文 时间:
2021-04-26 13:48:01
阅读次数:
0
问题 在一堆数组当中,选出第k小的数组 分析 在一般的情况下面,要选择第k小的数组,要先给它进行排序,排序至少需要O(n * logn)的时间复杂度,但是我们可以用分治的思想,相当于快排,给它进行分组,一组一组的进行排序,虽然也是排序,但是时间复杂度可以到达O(n)。 #include<bits/s ...
分类:
其他好文 时间:
2021-04-26 13:22:43
阅读次数:
0
后缀数组构造方法: 1.倍增 直接参考刘汝佳蓝书 时间复杂度不优秀,但代码实现简单,细节处理较多,建议参考思路后背过代码。 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring ...
分类:
编程语言 时间:
2021-04-24 13:23:55
阅读次数:
0
思路: 通过把二维矩阵转化为一维来求解,我们的一维并不是对矩阵处理,一维数组是一列的元素和。 首先我们定义上边界,上边界从第一行开始,然后创建一个数组,每一个上边界创建一次数组,然后再定义一个下边界,从上边界的位置开始。然后求解上下边界组成的矩阵中第0列到最后一列的每一列和。 因为矩阵还需要有左右边 ...
分类:
其他好文 时间:
2021-04-23 12:08:39
阅读次数:
0
题目大意: 题目思路: 最朴素的方法就是暴力枚举两个答案,然后check取一个最大值就ok,时间复杂度O(N^2) 考虑一种比较好的做法 最小值最大化老二分的套路了 我们二分答案 考虑如何check 因为我们二分的mid是最小值,也就是小于这个值的数字,我们一定是用不到的 也就是如果剩下的数字中能够 ...
分类:
其他好文 时间:
2021-04-21 12:04:21
阅读次数:
0