
算法
文章平均质量分 83
龙舌兰小伙
这个作者很懒,什么都没留下…
展开
-
算法四:链表问题
链表题方法论:笔试:一般不会要求空间复杂度,因为输入输出本身就很占空间,一切以时间复杂度为主,面试:因为要以解题思路吸引面试官,所以要顾及到空间复杂度。解题技巧:笔试:使用容器(哈希表、数组等),面试:使用快慢指针(省空间)。链表找中点问题:面试:四个问题思路都是快慢指针,但是题目要求不同,导致快慢指针初始值不同,但是接下来的循环遍历是相同的:while(fast.next != null && fast.next.next != null){ .原创 2021-05-12 17:13:33 · 282 阅读 · 0 评论 -
算法三:前缀树、桶排序、排序算法比较、稳定性、常见的坑
前缀树:设计一个容器,可以往里添加一个一个字符串,可以从里面删除字符串,可以查询一个字符串出现过多少次,可以查询一个字符串是多少个字符串的前缀:一个节点上有三个属性,pass表示有多少个字符串经过它,end表示有多少个字符串以他结尾,nexts[26]表示下一个路径,节点初始pass=0,end=0,添加abc时,指针指向根节点,pass++,看根节点有没有a方向的路,没有就在a方向增加一个节点,指针跳到新节点,pass++;有就直接跳到a方向下一个节点,pass++,再看有没有b方原创 2021-05-11 22:42:17 · 342 阅读 · 0 评论 -
算法二:归并排序、快排、堆、堆排序、堆应用
归并排序:想要这个数组有序,只需要令左半边有序,右半边也有序,再把两部分合并。归并排序递归实现:递归方法:f(arr,left, right),递归出口:如果left == right,即当前部分只有一个元素,直接返回,递归调用:中点mid = left +(right-left)>> 1,左边排序f(arr,left,mid),右边排序f(arr,mid+1,right),合并merge(arr,left,mid,right),其中merge不涉及递归,只是一个普.原创 2021-05-10 23:56:13 · 178 阅读 · 0 评论