Binary Search Trees: BST树里首先讲了插入删除查找等操作,比较常规。查找:最差O(n),最好O(logn),平均O(logn);插入:成功的插入平均O(logn),最差也是O(n);删除里有三种情况,对于一次成功的删除,待删除的结点v的子结点个数只可能是0、1、2,如果是0的话 ...
分类:
其他好文 时间:
2020-02-01 16:03:31
阅读次数:
70
面试题17:在O(1)时间删除链表结点 问题描述 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 链表结构 问题分析 曾经未碰到这道题之前,删除链表的节点,用的方法非常原始、基础(代码如下),很明显这种原始的方式带来的时间复杂度为O(n) 过去刚遇到这道题,半天也没想起来 ...
分类:
其他好文 时间:
2020-01-31 21:10:00
阅读次数:
70
二叉树,每个节点键值大于左孩子,小于右孩子 和堆的区别,不一定是完全二叉树 可使用递归实现 存储键值对,可高效地实现插入、查找、删除 查找 插入 删除 普通数组 O(n) O(n) O(n) 顺序数组 O(logn) O(n) O(n) 二分搜索树 O(logn) O(logn) O(logn) 遍 ...
分类:
编程语言 时间:
2020-01-29 18:19:54
阅读次数:
86
1、简介 在 STL 中,算法就是函数模板。STL 中的算法大多数是用来对容器进行操作的,如排序、 查找等。大部分算法都是在头文件 <algorithm> 中定义的,还有些算法用于数值处理,定义在头文件 <numeric> 中。 STL 提供能在各种容器中通用的算法(大约有70种),如插入、删除、查 ...
分类:
编程语言 时间:
2020-01-20 12:53:03
阅读次数:
81
散列表的实现通常叫做散列。散列是一种用于以常数平均时间执行插入、删除和查找的技术。但是任何排序的信息都不会得到有效的支持。所以FindMax(),FindMin(),以及以线性时间打印的操作都是散列所不支持的。 理想的散列表数据结构值不过是一个包含有关键字的具有固定大小的数组。 关键字映射的函数叫做 ...
分类:
其他好文 时间:
2020-01-18 00:43:45
阅读次数:
84
链表的回文结构 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针 A ,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: Java C++ two sum https://www.nowco ...
分类:
其他好文 时间:
2020-01-16 12:28:50
阅读次数:
69
容器 vector 特点:动态数组 元素类型相同 只能从尾部快速插入或者删除 随机访问快 中间插入删除慢(需要移动) capcity是给的块的大小 定义vectorvector<int> A(10, 1); //声明一个初始大小为10且值都是1的向量vector<int> A(tmp); //声明并 ...
分类:
其他好文 时间:
2020-01-16 01:04:49
阅读次数:
68
DML(Data Manipulation Language)数据操纵语言 对数据库中的数据进行一些操作,例如对表中数据的插入、删除和修改。 DDL(Data Definition Language)数据定义语言 是用于描述数据库中要存储的现实世界实体的语言。对数据库中的某些对象(例如databas ...
分类:
数据库 时间:
2020-01-13 18:13:39
阅读次数:
113
解法思路,可以使用暴力解法,但是时间复杂度过多,时间复杂度为O(N),所以不建议使用,我采用双指针法,即头尾两个指针,当头指针的值小于尾指针,则头指针后移,否则尾指针后移 代码如下 package com.qyx.Tree; /** * 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标 ...
分类:
编程语言 时间:
2020-01-10 20:25:58
阅读次数:
77
题目描述 用C++语言和类实现单链表,含头结点 属性包括:data数据域、next指针域 操作包括:插入、删除、查找 注意:单链表不是数组,所以位置从1开始对应首结点,头结点不放数据 类定义参考 输入 n第1行先输入n表示有n个数据,接着输入n个数据第2行输入要插入的位置和新数据第3行输入要插入的位 ...
分类:
其他好文 时间:
2020-01-10 20:22:07
阅读次数:
71