自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Andyato的博客

学无止境,愿每一个拐弯都是为了走到一条更好的道路上!

  • 博客(11)
  • 收藏
  • 关注

原创 直通BAT面试算法精讲--链表(1)

链表问题知识点和注意事项 1.链表问题算法难度不高,但考察代码实现能力。 2.链表和数组都是一种线性结构,数组是一段连续的存储空间,链表空间不一定保证连续,是临时分配的链表的分类 1.按链接方向分类:单链表,双聊表 2.有无环:普通链表,循环链表链表问题代码实现关键点 1.链表调整函数的返回值,类型要求往往是节点类型。 2.处理链表过程中,先采用画图的方式理清逻辑。...

2018-07-30 20:55:28 280

原创 直通BAT面试算法精讲--栈和队列(3)

案例五滑动窗口练习题 题干: 有一个整形数组arr和一个大小为w的窗口,从数组的最左边滑到最右边,窗口每次向右滑一个位置,返回一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值,以数组为[4,3,5,4,3,3,6,7],w=3为例,因为第一个窗口[4,3,5]的最大值为5,第二个窗口[3,5,4]的最大值为5,第三个窗口[5,4,3]的最大值为5,第四个窗口[4,...

2018-07-29 21:12:41 224

原创 直通BAT面试算法精讲--队列和栈(2)

案例二双栈队列练习题 题干: 编写一个类,只能用两个栈结构实现队列,支持队列的基本操作(add,poll,peek) 解题思路: 两个栈,一个用来实现入队,一个用来实现出队class Solution(): def __init__(self): self.stack1 = [] self.stack2 = [] def pus...

2018-07-27 22:06:54 319

原创 直通BAT面试算法精讲--队列和栈(1)

队列和栈的性质: 1.栈是先进后出 2.队列是先进先出 3.栈和队列一般有数组和链表两种实现方式栈结构的基本操作: 1.pop操作 2.top或者peek操作 3.push操作 4.size操作队列结构的基本操作 1.push操作 2.pop操作队列和栈的基本操作,都是时间复杂度为O(1)的操作双端队列 首尾都可以压入或者弹出元素优先级队列 根据元素的优先...

2018-07-27 16:06:08 436

原创 直通BAT面试算法精讲--字符串(3)

案例7空格替换练习题 题干: 给定一个字符串str,将其中所有的空格字符替换成’%20’,假设str后面有足够的空间class Solution(): def replace(self,strs): if strs=='' or len(strs)==0: return strs if ' ' in strs: ...

2018-07-24 22:20:27 215

原创 直通BAT面试算法精讲--字符串(2)

案例三两串旋转练习题如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。 比如A=”12345”, A的旋转词有”12345”,”23451”,”34512”,”45123”和”51234”。 对于两个字符串A和B,请判断A和B是否互为旋转词。给定两个字符串A和B及他们的长度lena,lenb,请设计一个函数,返回一个bool值,代表他们是否互为旋转...

2018-07-23 17:56:57 216

原创 直通BAT面试算法精讲--字符串(1)

字符串面试题的特点: 1.广泛性 (1)字符串可以看做字符类型的数组,与数组排序、查找、调整有关 (2)很多其他类型的面试题可以看做字符串类型的面试题 2.需要掌握的概念 (1)回文 (2)子串(连续) (3)子序列(不连续) (4)前缀树(Trie树) (5)后缀树和后缀数组 (6)匹配 (7)字典序 3.需掌握的操作: (1)与数组相关的操作:增删...

2018-07-16 22:26:43 394 1

原创 直通BAT面试算法精讲--排序(4)

案例四荷兰国旗问题 三色排序问题对只包含0,1,2的整数数组进行排序,要求使用交换、原地排序,而不是利用计数进行排序,做到0全在数组左边,1在中间,2在右边 测试用例: arr = [1,1,0,0,2,1,1,0] 输出:[0,0,0,1,1,1,1,2]解题思路: 在数组左侧设置一个0区域,初始长度为0,在数组右侧设置一个2区域,初始长度为0 从左右到遍历,如果当前...

2018-07-14 19:13:07 189

原创 直通BAT面试算法精讲--排序(3)

注: 所有的代码都是用python实现的,都是自己写的,可能有些地方不太完善案例一已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离不超过k,并且k相对于数组长度来说很小。请问选择什么方法对其排序比较好解题思路: 移动不超过k,说明最小值位于0~k-1中,将0~k-1组成个最小堆。弹出堆顶元素,将位置k上的数放置堆顶,再次调整小根堆。递归实现。实...

2018-07-14 16:35:29 270

原创 直通BAT面试算法精讲--排序(2)

注: 所有的代码都是用python实现的,都是自己写的,可能有些地方不太完善稳定性问题稳定的:冒泡、插入、归并、计数、基数、桶排序 不稳定:快速、选择、希尔排序、堆排序(快选希堆不稳,堆归选基不变,不变指的是运行时间不变,与初始状态无关)补充说明 1.排序算法无绝对优劣 算法效果取决于排序的元素。例如人身高,数值范围小,可以选择计数排序,但对于均匀分布的整数,计数排序...

2018-07-14 16:15:35 236

原创 直通BAT面试算法精讲--排序(1)

注: 所有的代码都是用python实现的,都是自己写的,可能有些地方不太完善冒泡排序问题时间复杂度:O(n^2) 空间复杂度:O(1)def bubble_sort(arr,n): if not arr: return None for i in range(n): for j in range(i+1,n): ...

2018-07-14 16:06:32 250

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除