自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Redis知识点详解

redis知识点详解包括:redis基础、redis管道pipeline、redis事务、redis发布订阅、redis缓存、redis数据库、redis布隆过滤器、redis的持久化存储RDB与AOF、redis主从复制与哨兵模式还有四个面试常考点穿透、击穿、雪崩、分布式锁

2023-01-29 12:44:34 255

原创 深度学习知识整理---图神经网络(持续更新)

节点:Vertex(Node) contains attributes,节点包含与节点相关的特征边:Edge(link) contains attributes and direction,边包含与边相关的特征与方向信息图:Global contains attributes,图包含与图相关的特征。

2023-11-01 11:49:56 1155

原创 MindSpore下载与安装(包含python环境不匹配问题)

4.下载python3.9版本(官网:https://www.python.org/),但下载后不用在环境变量中替换原有的3.10.11版本的python(注意在下载界面的高级选项中去掉加入Path那项)(3)执行python -m ipykernel install --user --name=mindspore_py39(name可以自己定义)(3)mkvirtualenv py_env_test --python=在路径目录下创建虚拟环境,在这步指定python3.9.exe的路径。

2023-11-01 11:41:06 1615

原创 Renren快速开发手册

人人开源网址:在人人开源中下载renren-fast、renren-fast-vue、renren-generator。

2023-02-22 10:53:51 852

原创 二分查找的应用

二分查找 大于等于target的最左侧位置。二分查找 小于等于target的最右位置。

2023-02-13 16:34:11 133

原创 布隆过滤器

现有url进行判断,对url进行散列命中1,2,3位置,但已知url并没在黑名单中,123位置是之前黑名单url散列的结果。根据面试官给出的数据量与失误率计算出理论m与k,然后问面试官能不能再多给一点空间,如果可以,那么理论m和k向上取整,得到真实m与k。hash函数太多,会导致描黑增多,m很快被耗尽,失误率增加。bitmap太大,会导致很多空间被浪费。根据n和p,算出布隆过滤器一共需要多少bit位,即bitmap大小,向上取整,记为m。根据m和n,算出布隆过滤器需要多少个hash函数,向上取整,记为k。

2023-01-18 22:00:23 386

原创 通俗易懂讲区间问题:前缀和数组、差分数组、线段树、树状数组(完结)

前缀和数组、差分数组、线段树、树状数组均用于处理区间问题,但有不同应用场景前缀和数组:用于处理 连续多次取区间和 操作的情况,取区间和期间不能对原数组进行区间增减数操作差分数组:用于处理 多次区间增减数操作,最后读取一次区间和(即修改期间读取不频繁) 操作的情况线段树:用于处理 多次区间增减数操作,期间多次读取区间和(即修改期间读取频繁) 操作的情况树状数组:用于处理 多次区间增减数操作,期间多次读取区间和(即修改期间读取频繁) 操作的情况,同线段树的情况、但树状数组更加简单且不支持区间更新

2023-01-17 16:10:26 812

原创 Leetcode1498:满足条件的子序列的数目

但是怎么处理Math.pow(2,num),num会非常大,这么做显然会溢出。本题想法不难:首先排序,然后左右双指针。先对幂运算预处理,太妙了!

2023-01-14 13:15:16 104

原创 好题分享:给定数组arr,给定目标范围range,问arr中有多少子数组满足目标范围

由于range[0]与range[1]是固定常数,sum[i]随着i的增加而增加,因此sum[i]-range[1]是递增的,sum[i]-range[0]也是递增的,所以在求满足条件的左边数组时,指针是不回退的,因此时间复杂度是O(n),所以不会改变归并排序时间复杂度,在归并结束后也就获得了所有满足条件的子数组数目。后两层循环(i,j),i确定子数组起始位置,j确定子数组终点位置,然后此时不需要再遍历获取子数组和,只需要依靠前缀数组sum[j]-sum[i-1]即可获得子数组和。暴力解决:O(n^3)

2023-01-14 12:14:23 75

原创 数据结构:红黑树

4.添加节点不是根节点,父亲节点是红色,叔叔结点是红色,将父亲与叔叔变为黑色,祖父变为红色,如果祖父是根节点要再次变为黑色。5.添加节点不是根节点,父亲节点是红色,叔叔结点是黑色,将父节点变为黑色,祖父节点变为红色,并以祖父节点为支点旋转。3.如果一个节点没有子节点或者父节点,则该节点相应指针属性值为Nil,这些Nil视为叶节点,每个叶节点是黑色的。4.如果一个节点是红色的,那么它的子节点必须是黑色的(不能出现两个红色节点相连的情况)3.添加节点不是根节点,父亲节点是黑色,那么不需要进行任何操作。

2023-01-14 11:22:42 56

原创 数据结构:跳表

第0层(最后一层)包含所有结点(记为x),第1层包含0.5x数量的节点,第2层包含(0.5^2)x数量的节点......在查询时从最高层开始查,能够跨越一半节点,降一层后再跨越剩下的一半节点......因此查询时间复杂度为0(logN)根据key创建不同节点,使用列表存储不同层连接的不同节点。每个结点都有层数,且创建节点时以0.5的概率增加层数。头结点设定为null点。

2023-01-14 09:46:08 59

原创 Leetcode:剑指Offer22:链表中倒数第k个节点

使用快慢指针法,先让快指针走k-1步,再让慢指针走直到快指针走到头。不需要先遍历一遍链表,即可获得倒数第k个节点。

2023-01-12 13:20:18 77

原创 Leetcode:剑指Offer19:正则表达式匹配

题解需要一定基础:知道如何通过暴力递归改为动态规划。

2023-01-11 22:36:09 62

原创 关于添加公钥后仍需输入密码的问题

在服务器A的authorized_keys文件中添加了服务器B的公钥,但还需要密码登录。chmod 600 authorized_keys(修改authorized_keys权限)权限修改正确,但root目录的所有者不是root用户而是其他用户。此时修改拥有者:chown -R root:root /root。chmod 700 ../(修改root目录权限)chmod 700 .(修改.ssh目录权限)有些人修改权限后还是不行,是因为和我一样的问题。cd ~/.ssh(进入到.ssh目录)

2023-01-09 18:11:24 1028

原创 Leetcode1658:将 x 减到 0 的最小操作数

本题代码如下,但对于1658来说代码比较复杂,有更简单的写法。子数组(不是子序列)和的问题。1.数组两端向内连续求和的问题 可以。为 先求出数组元素的总和然后再减去。需要对最左和最右两个元素单独判断。2.对于子数组的和可以使用。

2023-01-07 11:58:15 149

原创 Hadoop-HDFS分布式文件系统(学习版)持续更新

分布式文件系统这么多,为什么Hadoop项目中还要开发一个hdfs文件系统?hdfs分布式文件系统能够更好支持分布式文件计算,更好的应用。

2023-01-04 21:17:51 185

原创 leetcode1755:最接近目标值的子序列和

而观察发现,数组长度很小,因此使用二分。此题查看范围,不能使用动态规划。

2023-01-04 13:20:43 156

原创 Leetcode1139:最大以1为边界的正方形

算法导论:通过预处理降低时间复杂度。本题如果嵌套四层循环T=O(n^4),而通过预处理T=O(n^2)+O(n^2)+O(n^3)=O(n^3)在一个n*n的矩阵中,长方形数量是O(n^4) 选一个点n^2 再选一个点n^2,正方形数量是O(n^3) 选一个点n^2 边长范围0~n。本题不能够使用单调栈处理,因为求“边框正方形”,内部可以不是全1。

2023-01-04 12:30:50 94

原创 给定能力值,最多能够举办多少场比赛(算法)

先进行排序,双指针L与R,判断对应人是否能够一起比赛。如果能,则记录并且L++、R++;如果差大于k,那么说明L不够大,则L++;如果差小于k,那么说明R不够大,则R++。:给定一个数组arr,代表每个人的能力值。再给定一个非负数k,如果两个人能力差证号为k,那么可以凑在一起比赛,一局比赛只能有两个人。返回最多可以同时有多少场比赛。

2023-01-03 15:12:14 80

原创 设计接收流数据的数据结构(算法)

查找tailMap中的key是否有num-1,如果有,那么num-1,、num对应的node可以串连起来,num-1可以从tailMap中删除,因为num-1与num串连起来后,整个链的尾是num。查找headMap中的key是否有num+1,如果有,那么num、num+1对应的node可以串连起来,num+1可以从headMap中删除,因为num与num+1串连起来后,整个链的头是num。设计一个headMap与一个tailMap。:无序进入,有序输出。

2022-12-31 13:28:09 121

原创 排序最短的子数组使整个数组有序(算法)

从左到右扫描,如果到达某一个位置maxIndex+1(理解为最靠右第一个大于maxNum的位置),在这之后的值都大于maxNum,也就是说后面的值都不需要给前面的值让位置,所以后面的数不需要排序。从右到左扫描,如果到达某一个位置minIndexx-1(理解为最左第一个小于minNum的位置),在这之前的值都小于minNum,也就是说前面的值都不要给后面的值让位置,所以前面的数不需要排序。如果当前扫到的值小于maxNum,更新记录的。如果当前扫到的值大于minNum,更新记录的。从小到大排序的本质是,

2022-12-31 12:46:38 217

原创 桥接模式(学习版)

第二个维度都有“支付校验”功能,只是各自实现的方式不太一样,那么我们将“支付校验”的功能提取出来放到接口IPayMode里面,其他FacePayMode、FingerprintMode去实现IPayMode的支付方法security。但是我们要将他们组合起来,也就是说我在使用微信支付(维度一)的时候要选择一种校验方式(维度二),所以我们要将第二个维度的对象放在第一个维度中(组合),通过传参的方式选择校验方式。第一个维度就是“支付类型”,第二个维度就是“支付方式”。那么接下来我们引出桥接模式的四个角色。

2022-12-30 14:21:00 110

原创 代理模式(学习版)

2.Proxy.newProxyInstance中,通过类加载器与接口获取代理类,后创建Constructor对象,并调用newInstance方法,传入InvocationHandler对象。1.Proxy.newProxyInstance三个参数:目标类的类加载器、目标类实现的接口、事件处理器、InvocationHandler。3.调用代理对象的方法时,实际是调用InvocationHandler重写的invoke方法。2.动态代理与静态代理相比最大的好处就是,拿JDK代理举例,

2022-12-29 13:37:34 262

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除