数据结构和算法
文章平均质量分 62
面试必备
for your wish
好记性不如烂笔头。个人笔记用的博客
展开
-
链表反转-迭代和递归
要求很简单,输入一个链表,反转链表后,输出新链表的表头。 反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是 斐波那契数列和单链表反转,递归方法实现链表反转比较优雅, 但是对于不了解递归的同学来说还是有理解难度的。 遍历法 遍历法就是在链表遍历的过程中将指针顺序置换 ...原创 2022-03-13 14:22:06 · 255 阅读 · 0 评论 -
L1:数组和链表
数组Array:内存中一段连续存储空间 int a=new Array[100]; 数组基本特征: 支持随机访问 数组的关键 索引和寻址 时间复杂度 因为有索引,尾部追加和查询都是复杂度为O(1),其他操作为O(n) 变长数组 :ArrayList 链表 ...原创 2022-03-02 09:31:46 · 336 阅读 · 0 评论 -
时间空间复杂度
大O表示法 忽略常数,只看最高复杂度的运算。比如一个for循环,循环1次和10次都是O(1)(不看常数的) O(n)和O(10n)都是O(n),O(n^2+n)就是O(n^2) O(1) O(log(n)) O(n) O(n^2) O(2^n) O(n!) O(log(n))没有底数:底下能推出来一个常数。根据换底公式下面能换出来一个常数 忽略常数,所以以2为底和以3为底一样的没区别 举例 首先声明:LeeCode认为 一亿下计算大概1s O(1) int n = 10.原创 2022-02-28 10:24:34 · 446 阅读 · 0 评论 -
数组和链表
数组(Array) 一、数组特点: 所谓数组,就是相同数据类型的元素按一定顺序排列的集合;数组的存储区间是连续的,占用内存比较大,故空间复杂的很大。但数组的二分查找时间复杂度小,都是O(1);数组的特点是:查询简单,增加和删除困难; 1.1 在内存中,数组是一块连续的区域 1.2 数组需要预留空间 在使用前需要提前申请所占内存的大小,如果提前不知道需要的空间大小时,预先申请就可能会浪费内存空间,即数组的空间利用率较低。注:数组的空间在编译阶段就需要进行确定,所以需要提前给出...原创 2020-07-27 15:56:26 · 4014 阅读 · 0 评论
分享