
数据结构和算法
文章平均质量分 86
Bevis_OTL
后端、计算机视觉;互联网技术爱好猿!
展开
-
Python进阶——哈希和加密
哈希函数(hash function)可以把 任意长度的数据(字节串)计算出一个为固定长度的结果数据。原理是把Key通过一个固定的算法函数即所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。而当使用哈希表进行查询的时候,就是再次使用哈希函数将key转换为对应的数组下标,并定位到该空间获取value,如此一来,就可以充分利用到数组的定位性能进行数据定位。...原创 2022-08-14 10:34:36 · 1233 阅读 · 0 评论 -
LeetCode刷题 Python实现——常用内置算法和数据结构
使用Python刷题经常要使用python 内置模块,一般如果内置的可以满足需求,我们优先使用内置模块, 因为在性能和容错性方面内置模块要好于我们自己实现(比如有些是 c 实现的),列举出一些常见模块供大家参考, 如果有需要最好的学习方式就是参考 Python 的官方文档。很多高级的数据结构我们也可以通过 google 搜索现成的库拿来直接用。...原创 2022-07-07 20:44:31 · 3267 阅读 · 0 评论 -
【LeetCode刷题】sorted(enumerate(nums),key=lambda x:x[1],reverse=True)
sorted(enumerate(nums),key=lambda x:x[1],reverse=True)用法解释原创 2022-07-06 21:24:50 · 791 阅读 · 0 评论 -
数据结构学习——堆
堆的常用方法:堆属性数组实现树堆和普通树的区别 堆是一种经过排序的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构是指堆是完全二叉树。所以堆在数据结构中通常可以被看做是一棵树的数组对象。而且堆需要满足一下两个性质:(1)堆中某个节点的值总是不大于或不小于其父节点的值;(2)堆总是一棵完全二叉树。堆分为两种情况,有最大堆和最小堆。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。下图图一就是一个最大堆,图二就是一个最小堆。在一个摆放好元素的最小堆中,可以看到,父结点....原创 2022-06-23 23:29:56 · 3475 阅读 · 1 评论 -
【LeetCode刷题】新手一看就会的——动态规划详解—入门
目录前言什么是动态规划动态规划基本思想动态规划实例讲解青蛙跳阶问题带备忘录的递归解法(自顶向下)自底向上的动态规划 动态规划的解题套路动态规划的解题思路1. 穷举分析2. 确定边界3. 找规律,确定最优子结构4, 写出状态转移方程5. 代码实现 我们刷leetcode的时候,经常会遇到动态规划类型题目。动态规划问题非常非常经典,也很有技巧性,一般大厂都非常喜欢问。动态规划算法我在刚接触算法设计时很苦恼的问题,对于相关类型题目,完全无从下手。之后就在网上看原理和讲解,在看了很多讲解和教程中,花了很多走了很多弯原创 2022-06-22 15:21:00 · 1467 阅读 · 1 评论 -
LeetCode刷题解题思路以及算法实现——图—寻找路径(BFS)
目录前言题目描述解题思路算法法实现TIPS:最后,更多关于数据结构和算法知识请参考我其他的文章哦!!!希望大家有所收获!对于图的基础知识不了解的可以参考数据结构和算法---图---概念入门(一)这篇文章。详细介绍关于图的基本知识点,有助于小伙伴们刷题哦!1971. 寻找图中是否有路径有一个具有 n个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示顶点 ui 和顶点 vi 之间原创 2022-06-21 11:21:16 · 1742 阅读 · 2 评论