
《Algorithm》
阿卡基-马
业余马拉松选手
展开
-
滑动窗口的最大值
vector<int> maxInWindows(const vector<int>& num, unsigned int size){ vector<int> maxInWindows; if(num.size() >= size && size >= 1) { deque<int> index; for(unsigned int i = 0; i < s.原创 2020-06-16 11:40:59 · 255 阅读 · 0 评论 -
白话讲排序系列(六) 堆排序(绝对让你明白堆排序!)
开门见山,本文讲述堆排序。就我自身对于排序的了解来看,其实堆排序是诸多排序中最难写的,光是理解起来都有点费劲,本文旨在于用通俗易懂的话,把堆排序娓娓道来。下面,开始!1:堆毫无疑问,排序两个字没必要去死磕,这里的重点,在于排序的方式,堆排序,就是以堆的形式去排序,毫无疑问,了解堆很重要。那么,什么是堆呢?这里,必须引入一个完全二叉树的概念,然后过渡到堆的概念。上图,...转载 2018-11-23 13:51:10 · 403 阅读 · 0 评论 -
向量内积(点乘)和外积(叉乘)概念及几何意义
向量的内积(点乘)定义概括地说,向量的内积(点乘/数量积)。对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,如下所示,对于向量a和向量b: a和b的点积公式为:这里要求一维向量a和向量b的行列数相同。注意:点乘的结果是一个标量(数量而不是向量)定义:两个向量a与b的内积为 a·b = |a||b|cos∠(a, b),特别地,0·a =a·0 = ...转载 2018-12-10 19:52:33 · 15640 阅读 · 0 评论 -
多叉树的设计、建立、层次优先遍历和深度优先遍历
实现一棵多叉树实现一棵多叉树这棵树可以有任意多颗子树 0-n 12 3 45 6 7 8输入建立二叉树,输入的格式是每个节点的具体数据和拥有的孩子数目例如上面的树是这样建成的:1 32 25 06 03 17 04 18 01 #include <iostream> 2 #include <vector> 3 ...转载 2019-05-29 08:41:17 · 1259 阅读 · 0 评论 -
双向链表的基本操作
学过单向链表的小伙伴都知道单向链表中的每一个节点有且只有一个指针,这个指针就是用来指向下一个节点的,单向链表顾名思义就是链表方向是单方向的,而本文要介绍的双向链表就是链表方向是双方向的,也就是双向链表中的每一个节点有两个指针,一个指针用来指向上一个节点(前驱),另一个指针用指向下一个节点(后继)。 本文主要是总结一下自己对双向链表的基本操作,当然我也只是写了几个比较简单的操作,其中包括双向...转载 2018-08-07 11:19:07 · 2797 阅读 · 0 评论 -
二叉树基础知识总结
原文地址:点击打开链接题外话昨晚面了腾讯,问了一个完全二叉树的题,竟然让我算了快10分钟,因为等比公式记错了导致最后用最原始的方法推算结果也没算对,一下子就懵了。本来精心准备了1周的面试,最后因为自己基础知识记忆不牢固导致了悲剧。不管怎样,还是要继续查漏补缺,准备将数据结构再细细看一遍,先来补上二叉树的这个漏洞吧。一、树的定义树是一种数据结构,它是由n(n>=1)个有限...转载 2018-06-14 08:23:38 · 1603 阅读 · 1 评论