1. 原理: 递归:函数自己调用自己 1 function fn() { 2 fn(); 3 } 4 fn();//会导致栈溢出 1 function fn() { 2 setTimeout(fn,0); 3 } 4 fn();//不会导致栈溢出 2. 代码实现: 3.时间复杂度: 空间复杂度: ...
分类:
编程语言 时间:
2021-06-28 19:12:32
阅读次数:
0
题目内容:给定一个字符串$s$,求其中最长的回文子串的长度。 数据范围:$s$的长度不超过$2105$ 时间限制:\(1000ms\) 传统的动态规划的做法时间复杂度$O(n2)$,会$TLE$.此处不多作介绍. 以下给出两种优化的做法: 解法一: 1.当回文子串的长度为奇数时:扫描数组,枚举每一个 ...
分类:
其他好文 时间:
2021-06-28 18:15:48
阅读次数:
0
顺序表是线性表的实现方式之一,其特点是逻辑上相邻的元素在物理上也相邻。顺序表一般使用数组实现。因此顺序表可以随机访问,时 间复杂度为O(1)。但插入和删除元素时,由于线性表的有序性,要移动大量元素,时间复杂度为O(n). 本代码拟使用动态分配空间的方式存储顺序表元素。 一个顺序表结构类型如下: 1 ...
分类:
其他好文 时间:
2021-06-28 17:56:32
阅读次数:
0
这是c++性能测试工具教程的第四篇文章,从本篇开始我将逐步介绍一些性能测试的高级技巧。 前三篇教程可以看这里: c++性能测试工具:google benchmark入门(一) c++性能测试工具:google benchmark入门(二) c++性能测试工具:计算算法的时间复杂度 本文将会介绍如何使 ...
分类:
编程语言 时间:
2021-06-25 17:07:50
阅读次数:
0
算法思想 冒泡排序属于一种典型的交换排序。 交换排序顾名思义就是通过元素的两两比较,判断是否符合要求,如过不符合就交换位置来达到排序的目的。冒泡排序名字的由来就是因为在交换过程中,类似水冒泡,小(大)的元素经过不断的交换由水底慢慢的浮到水的顶端。 冒泡排序的思想就是利用的比较交换,利用循环将第 i ...
分类:
编程语言 时间:
2021-06-21 20:30:56
阅读次数:
0
描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。 实际上就是实现一个计算 a ^ b 的函数。 朴素算法 让 expo ...
分类:
其他好文 时间:
2021-06-21 20:09:09
阅读次数:
0
Solution 对于兔子们按照颜色为第一关键字 , 位置为第二关键字排序 , 查询个数时直接二分 , 相同颜色的修改不用管 , 不同颜色的修改不会改变统一颜色内的大小顺序 , 直接修改不会影响有序性 . 时间复杂度 \(O(nlogn)\) Code #include<iostream> #inc ...
分类:
其他好文 时间:
2021-06-21 20:02:00
阅读次数:
0
本文摘录自https://blog.csdn.net/u013069552/article/details/113860697 ...
分类:
编程语言 时间:
2021-06-20 18:43:23
阅读次数:
0
1.认识时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那 ...
分类:
编程语言 时间:
2021-06-20 18:14:51
阅读次数:
0
问题描述:给定一个数组arr,和一个数num,请把小于num的数放在数组的 左边,等于num的数放在数组的中间,大于num的数放在数组的 右边。 要求额外空间复杂度O(1),时间复杂度O(N) 问题分析:这部分其实和快排中的partition部分很相似,其思想就是将任意一个数组分成三部分,分别是小于 ...
分类:
其他好文 时间:
2021-06-17 16:35:19
阅读次数:
0