数据结构和基本算法
开开心心 everyday
这个作者很懒,什么都没留下…
展开
-
剑指offer 字符串全排列
视频讲解:https://www.bilibili.com/video/av9830088/?spm_id_from=333.788.videocard.3代码参考:https://blog.csdn.net/weixin_37672169/article/details/80893024原创 2019-10-14 15:21:42 · 179 阅读 · 0 评论 -
JAVA递归、非递归遍历二叉树
https://www.cnblogs.com/zhou-test/p/9915453.htmlhttps://blog.csdn.net/wayne566/article/details/79106372原创 2019-10-14 11:32:45 · 103 阅读 · 0 评论 -
数据结构-图
一、图的引入 图的用处:存储多对多的关系 图的存储结构:顺序表结构(二维数组)、链式表结构(链表) 图的路径规划:最短路径问题/算法二、 图的定义 图(graph)是一种存储多对多关系的一种网状数据结构。图是由费控顶点集合和一个描述定点之间关系的集合组成。(1)无向图、有向图(2)加权图...原创 2019-03-15 15:00:36 · 698 阅读 · 0 评论 -
数据结构图-迪杰斯特拉(Dijkstra) 最短路径算法
https://www.cnblogs.com/Braveliu/category/447818.htmlhttps://blog.csdn.net/qq_39521554/article/details/79333690原创 2019-03-14 20:04:58 · 214 阅读 · 0 评论 -
直通BAT面试算法精讲--位运算
位运算 位运算基本属于神仙题,见过就会,没见过就不会,靠平时积累案例一前提知识: 和位运算相关的不容过滤器。是一道大数据题目也和位运算有关系。 普通思路: 解题思路: 凡是遇见 网页黑名单、垃圾邮件过滤、爬虫网址判断等,对空间要求严格,一般是使用布隆过滤器原理 布隆过滤器:...原创 2019-03-06 21:59:01 · 255 阅读 · 0 评论 -
牛客网 python输入输出要求
牛客网推荐使用sys.stdin.readline()形式输入,输出用print()https://www.nowcoder.com/discuss/276牛客网的一般编程题和剑指Offer与Letcode的输入输出格式不同如:计算两数的和Python2:# 获取输入import systry: while True: line = s...原创 2019-09-27 16:06:00 · 390 阅读 · 0 评论 -
直通BAT面试算法精讲--排序(2)
经典排序算法算法的空间复杂度:经典排序算法的稳定性: 相同值的元素在排序前和排序后,相对次序保持不变。稳定性问题稳定的:冒泡、插入、归并、计数、基数、桶排序不稳定:快速、选择、希尔排序、堆排序(快选希堆不稳,堆归选基不变,不变指的是运行时间不变,与初始状态无关)补充说明1.排序算法无绝对优劣 ,算法效果取决于排序的元素。 ...原创 2019-02-27 21:53:41 · 159 阅读 · 0 评论 -
直通BAT面试算法精讲--排序(1)
冒泡排序思想:依次访问元素,逆序就置换。一趟排序后最大(小)的被置换到最后选择排序核心: 循环在未排序的部分选出最小的,放在排序部分末尾 (拿排序元素的最后一个挨个与未排序元素比较,有更小的就交换)思想: 分为有序和无序前后两部分,首先在未排序序列中选择最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续选择最小(大)元...原创 2019-02-27 21:47:40 · 271 阅读 · 0 评论 -
直通BAT面试算法精讲--字符串(3)
案例7空格替换练习题 题干: 给定一个字符串str,将其中所有的空格字符替换成’%20’,假设str后面有足够的空间 一般思路: 1、遍历发现空格数量,计算替换后的总长度 2、从右往左依次拷贝字符,遇到空格换为’%20’即可。 Python 可以使用 replace 函数class Solution(): def rep...原创 2019-02-27 16:33:21 · 232 阅读 · 0 评论 -
直通BAT面试算法精讲--字符串(2)
案例三旋转词练习 最优时间复杂度为O(N)1、判断str1与str2长度是否相等,不等返回false2、长度相等,生成str1+str1的大字符串3、用KMP算法判断大字符串是否包含str2Python中判断字符串是否在另外一字符串中可用 if B in C:Python class Solution(): def rotate(self...原创 2019-02-27 16:01:34 · 214 阅读 · 0 评论 -
二叉树和二叉树的遍历
二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点(k>0)性质3: 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总...原创 2019-01-16 11:31:43 · 115 阅读 · 0 评论 -
树
树树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父节点;...原创 2019-01-16 11:15:44 · 219 阅读 · 0 评论 -
排序算法
冒泡:java: public int sort_Bubble(int array[]){ for(int j=0;j<array.length-1;j--){ for (int i=0;i<j;i++){ if (array[i]<array[i+1]){ ...原创 2019-02-24 18:46:52 · 102 阅读 · 0 评论 -
直通BAT面试算法精讲--字符串(1)
字符串面试题的特点: 1.广泛性 (1)字符串可以看做字符类型的数组,与数组排序、查找、调整有关 (2)很多其他类型的面试题可以看做字符串类型的面试题 注意: 如果使用java实现字符串类型的题目时,需要掌握 StringBuffer,String Builder类和toCharArray(将字符串转化为字符类型的数组) 方法2.需要掌握的概念 (1)回文 (2...原创 2019-02-27 11:01:33 · 318 阅读 · 0 评论 -
直通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,在数组右...原创 2019-02-28 21:40:26 · 146 阅读 · 0 评论 -
直通BAT面试算法精讲--排序(3)
案例一小范围排序练习题 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离不超过k,并且k相对于数组长度来说很小。请问选择什么方法对其排序比较好分析:1、时间复杂度为O(N平方)的排序算法 冒泡排序和选择排序,与原始序列顺序无关,都要执行那么多次,时间复杂度严格为O(N平方) 插入排序与原始序列顺序有关,...原创 2019-02-28 21:09:35 · 186 阅读 · 0 评论 -
排序与搜索
排序与搜索排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,...原创 2019-01-14 16:06:01 · 638 阅读 · 0 评论