C++队列 默认已熟悉 。`vector`是一个极其重要的模板,其中的每一个函数都应该了解其作用与用法,这里不再赘述。 双向队列 双向队列( )类似于 ,允许快速随机访问任何元素并在容器后面高效插入和删除。 但是,和矢量不同的是, 还支持在容器前面高效插入和删除。使用时需加入头文件`` 虽名为队列, ...
分类:
编程语言 时间:
2019-09-12 21:25:49
阅读次数:
76
1. 手写一个单例模式 2. 手写一个生产者消费者模式 3. 手写一个LRU算法的实现; 4. 手写快排 5. 手写堆排 6. 手写树的遍历(先序、中序、后序、层序) 7. 手写一个二分查找 #. 剑指OFFER #. LeetCode ...
分类:
其他好文 时间:
2019-09-11 12:06:41
阅读次数:
104
双指针: leetcode167. 两数之和 II - 输入有序数组(双指针) leetcode 633.平方数之和(双指针 java) leetcode 345.反转字符串中的元音字母(双指针 java)(有地方不懂) leetcode 680.验证回文字符串 II(双指针 java) leetc ...
分类:
其他好文 时间:
2019-09-07 22:15:38
阅读次数:
129
算法对于前端工程师来说总有一层神秘色彩,这篇文章通过解读V8源码,带你探索`Array.prototype.sort`函数下的算法实现。 <!-- more --> 来,先把你用过的和听说过的排序算法都列出来: * 快速排序 * 冒泡排序 * 插入排序 * 归并排序 * 堆排序 * 希尔排序 * 选 ...
分类:
编程语言 时间:
2019-09-05 00:29:15
阅读次数:
120
class Solution { public int findKthLargest(int[] nums, int k) { int len=nums.length; int left=0,right=len-1; int target=len-k; //第k大的元素的数组下标就是len-k,可通... ...
分类:
编程语言 时间:
2019-09-03 22:23:07
阅读次数:
98
1. 前言 算法为王。 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远 。 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便以后复习。 之所以把 放在一起比较,是因为它们的平均时间复杂度都为 O(nlogn) 。 ...
分类:
编程语言 时间:
2019-09-03 09:41:46
阅读次数:
89
堆是一个完全二叉树 用数组表示 a[1]表示堆顶数据 i是非叶子节点, 左节点是i*2 右节点是i*2+1 堆化函数(主要目的是保证某个非叶子节点以下的所有子节点都满足堆结构定义) 插入 删除 堆排序 1建堆 2排序 ...
分类:
编程语言 时间:
2019-09-01 14:44:38
阅读次数:
90
链表翻转 字符串拷贝 && memcpy &memmove 快排和时间复杂度 字符串中查找字符 string类的实现 堆排序&时间复杂度 智能指针 一个英文文档,计算出现次数是10次的单词 互斥锁 多个字符串,找到前缀相同最多的两个字符串 判断一个点是否在矩阵中 两个玻璃球判断楼高 千万字符串中查找 ...
分类:
其他好文 时间:
2019-09-01 11:08:02
阅读次数:
96