算法与数据结构
文章平均质量分 76
子木呀
这个作者很懒,什么都没留下…
展开
-
坐标系中求三角形面积的三种方法(鞋带公式、海伦公式、三角形面积公式)
力扣每日一题:力扣https://leetcode.cn/problems/largest-triangle-area/一、鞋带公式1.1 鞋带公式定义Shoelace公式,也叫高斯面积公式,是一种数学算法,可求确定区域的一个简单多边形的面积。该多边形是由它们顶点描述笛卡尔坐标中的平面。用户交叉相乘相应的坐标以找到包围该多边形的区域,并从周围的多边形中减去该区域以找到其中的多边形的区域。之所以称为鞋带公式,是因为对构成多边形的坐标进行恒定的交叉乘积,就像系鞋带一样。1.原创 2022-05-15 12:46:15 · 21371 阅读 · 1 评论 -
为什么HTTP3.0使用UDP协议
目录1. 前言2.HTTP2.0和HTTP3.02.1 HTTP2.0和TCP的爱恨纠葛2.2 谷歌为什么选择UDP2.3 QUIC协议和HTTP3.03. QUIC协议详解3.1 队头阻塞问题3.2 0RTT 建链3.3 首次连接和非首次连接3.4 前向安全问题3.5 前向纠错3.6 连接迁移4. QUIC的应用和前景5.本文小结1. 前言通过本文你将了解到以下内容: HTTP2.0和TCP存在的一些问题 QUIC协议为什么原创 2021-09-25 22:34:51 · 502 阅读 · 0 评论 -
链表反转相关的题(C++模板)
目录反转单链表反转部分单链表K个一组反转单链表K个一组反转单链表(从尾结点开始)反转单链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLclassSolution{public:ListNode*reverseList(ListNode*head){if(he...原创 2021-09-25 22:33:37 · 237 阅读 · 0 评论 -
详解2021华为笔试三道编程题
目录2021华为笔试第一道缓存转发数据包统计(100%)解题思路:参考代码:2021华为笔试第二题查找知识图谱中的实例知识(100%)解题思路:参考代码:2021华为笔试第三题湖泊连通(100%)解题思路:参考代码:2021华为笔试第一道缓存转发数据包统计(100%)题目描述有k个节点的转发队列,每个节点转发能力为m,缓存能力n(表示此节点可立即转发m个包,剩余的缓存,最多缓存n个包,再剩余的丢弃,缓存的包在下一轮继续转发)。另外,此队列..原创 2021-09-25 21:52:50 · 5148 阅读 · 1 评论 -
B树与B+树 两者的区别
一个m阶的B树具有如下几个特征: 根结点至少有两个子女。 每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m 所有的叶子结点都位于同一层。 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。 一个m阶的B+树具有如下几个特征: 有k个子树的中间节点包含有k个元素(B树中是k-1个元素...原创 2021-09-13 12:13:17 · 660 阅读 · 0 评论 -
出入栈顺序这类题的快速做法
在笔试堆栈知识点中通常会考一道典型的出入栈题型,格式为:已知按照0,1,2...9的顺序入栈,则下面哪个不能为出栈顺序?下面来进行分析。入栈顺序:0,1,2,3,4,5,6,7,8,9出栈情况分析:假如数字5出栈,则代表数字0,1,2,3,4肯定已经入栈,因为5只有入栈了才能出栈。此时0,1,2,3,4是否已经出栈了呢?我们不清楚,可能其中部分已经出栈。下面来例举几种情况。case1:0,1,2,3,4都没有出栈,则0-4的出栈顺序为43210case2:数字3已经出栈,则数字5后面原创 2021-09-12 18:14:30 · 1783 阅读 · 0 评论 -
常见缓存算法和LRU与LFU的c++实现
目录常见的缓存算法LRU缓存LRU Cache具备的操作:LRU的c++实现双链表节点的定义:指定容量大小删除操作插入操作获取操作插入新节点LRU完整C++代码实现LRU和LFU的区别原文链接:https://github.com/cpselvis,https://www.cnblogs.com/cpselvis/p/6272096.html;对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存(如果是chrome浏览器..原创 2021-08-02 19:35:24 · 402 阅读 · 0 评论 -
c++优先队列(priority_queue)用法详解
绝对好文,转载自:https://blog.csdn.net/weixin_36888577/article/details/79937886目录一、基本类型例子:二、pair类型三、自定义类型四、常见问题既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的。和原创 2021-07-30 22:48:48 · 1571 阅读 · 0 评论 -
C++ 十大经典排序算法原理及模板之STL方法实现以及稳定性分析
一、算法概述1.算法分类十种常见排序算法分为2大类:非线性时间比较类:通过比较来决定元素间的相对顺序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类:不通过比较来决定元素间的相对顺序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。2.算法复杂度3.相关概念稳定:如果a原本在b前面,而a=b,排序后a仍在b前面不稳定:如果a原本在b前面,而a=b,排序后a可能会出现在b后面。...原创 2021-01-20 17:30:54 · 2643 阅读 · 0 评论 -
最长重复子串(Rabin-Karp算法)
目录最长重复子串C++代码最长重复子串1044. 最长重复子串给出一个字符串S,考虑其所有重复子串(S的连续子串,出现两次或多次,可能会有重叠)。返回任何具有最长可能长度的重复子串。(如果S不含重复子串,那么答案为""。)示例 1:输入:"banana"输出:"ana"示例 2:输入:"abcd"输出:""提示:2 <= S.length <= 10^5 S由小写英文字母组成。方法一:二分查找 + Rabin-K...原创 2021-06-28 21:10:52 · 7965 阅读 · 2 评论 -
数据结构有哪些?数据结构的特点?算法与数据结构
数据结构可以从两个方面分析:逻辑结构与物理结构(存储结构)。其中逻辑结构指的是数据的组织方式,物理结构指的是数据在内存上的存储方式。逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。物理结构又叫存储结构,分为四种种,顺序存储结构、链式存储结构、索引结构、散列结构。一、什么是数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据结构与算法的关系:数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一.原创 2021-06-25 20:32:22 · 4702 阅读 · 3 评论 -
C++ 数值的整数次方 (最小int取反,递归实现乘方)
剑指 Offer 16. 数值的整数次方难度中等156收藏分享切换为英文接收动态反馈实现pow(x,n),即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = ...原创 2021-05-26 17:48:21 · 943 阅读 · 0 评论