自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Redis】缓存穿透

而在布隆过滤器这里,我们不需要知道目标元素的key,我们只需要知道这个元素存不存在,所以,我们的散列函数里面存储的就是0和1,0表示不存在,1表示存在。总体思路如上图所示,就是在客户端取数据的时候先访问布隆过滤器,得到数据库是否包含该数据的结果,有再访问没有就不访问。缺点:会有额外的内存消耗,可能造成短期的不一致。f()是哈希函数,得到的结果是目标元素的key。导致的问题:缓存永远不会生效,这些请求都会去请求数据库—导致数据库压力增大。哈希算法是借助哈希表查找目标元素的方法,其中用的是哈希函数。

2024-03-18 18:03:02 300

原创 【Java,Redis】Redis 数据库存取字符串数据以及类数据

首先,我们要用java在redis里面存list数据,得先了解你要在redis里面存怎么样的数据,上面hash对象存的时候。到这里,最关键的是存到redis中的是json,而后端传到前端页面又可能是list。所以这里要将json转成list。我们要知道,我们从mysql中提取的数据类型是 List类型,所以在存到Redis中的时候要将list转成json。所以,我选择直接Json数据存在redis里面。hash对象是这样的,一个key值,类似于存储一个对象。hash是value里面还有key,value。

2024-03-13 00:53:36 444

原创 【前端】nginx 反向代理,实现跨域问题

前面讲跨域的问题,这篇 C# webapi 文章里面已经说过了。在上述文章中是属于从服务器端去允许访问的策略去解决跨域问题。而这里是从客户端的角度利用反向代理的方法去解决跨域问题。反向代理:其原理就是将请求都接收到一个中间件(中间地址)去响应,这样所有的请求和响应都在一个源上去处理。所有的请求去访问代理服务器,然后代理服务器把请求代理到web服务器,以及客户端。上图的实现如下列配置所示: proxy_pass 就是定义代理地址。

2024-02-25 18:54:29 970

原创 【Redis,Java】Redis的两种序列化方式—nosql数据库

mysql是存储在磁盘中的,redis是存储在内存中的,所以redis的读取书读快。如果要用这个方法使用redis一定注意redis的序列化,不然就会导致redis数据库内部的存储不对,因为在java这边,默认会将所要存储对象专程object类存储—将java对象转成字节,传到redis中,可能导致存储在redis中会乱码。redis的数据库是以键值对为基础存储在内存中的,而mysql为代表的关系型数据库是以表为基础存储在磁盘中的。缺点:jedis本身是线程不安全的,频繁的创建和销毁连接会有性能损耗。

2024-02-19 15:29:33 640

原创 Linux系统安装apache服务器并发布网站,以及配置

ip地址是网上的唯一标识,每一台需要定位的ip地址都需要一个唯一的ip地址,目前一般家里的ip地址都是动态的ip地址(你在去运营商那里购买宽带服务,运营商都会给你分配一个动态ip,如果你有需求,也可以去申请固定ip,我没申请过,应该是要钱的。我的理解是,局域网就好像是大包小的关系,它在公网上的公网ip可能只有一个,但是公网ip下的那台主机自身又有自己的ip系统,里面又给局域网下的主机每一台都分配一个ip。在这里,我想稍微介绍一下,远程电脑是怎么定位到你的机器,并得到页面文件的。

2024-02-07 13:45:12 409

原创 Linux系统安装mysql数据库并利用自己电脑远程连接

在新装的linux系统中,我们得先开启网络服务才能下载包啊什么的,所以在这之前,我们默认已经开启网络服务。如果要远程访问,还要打开防火墙3306端口,当然也可以把防火墙关掉,但是还是不建议这么做。因为我们最后是要允许远程访问,所以我们要赋予root账号远程访问的权限。刚安装的mysql需要重置密码,所以你可以先获取临时密码登陆再重置。首先我们需要先下载一个wget命令工具用于从网上下载软件安装包。在这之前我们要进入user表的数据库 mysql数据库。by后来的是新设置的密码。查看当前运行程序以及端口。

2024-02-06 14:45:16 432

原创 Linux 系统开启网络服务

在这个界面把onboot改为yes,我这里是设置完的。然后通过下面语句重新启动服务就可以了。首先,大家新装的linux系统可能都没有安装vim工具,所以打开文件的方式是。centos7 好像就不能通过。查看ip地址了,得用。centos7 关机。

2024-02-06 14:34:16 454

原创 c# 简单web api接口实例源码分析

下面代码中,app.UseRouting() 和app.UseEndpoints() 必须搭配在一起使用。该文件包含 startup构造函数,configuration属性,ConfigureServices方法以及Configure方法。Configure方法:用于配置http请求管道,请求中间件。.ConfigureWebHostDefaults() —配置webapi的信息。下面的代码就是在di容器中加入 webapi所使用的mvc架构和注册其中的控制器服务。构造函数的作用是注入三种服务。

2023-11-27 09:32:08 850

原创 c# webapi 处理跨源问题

是指不同站点之间,使用ajax无法相互调用的问题。跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。这个就是我们常说的同源策略(协议,域名,端口都相同就是同源)从而允许指定域的站点访问当前域上的资源。这些都是在configureservices中设置完跨源策略之后用的。工作原理:服务器在返回响应报文的书一样,在响应头设置一个允许的header。直接允许所有的接口都适用中间件外,也能指定接口用哪个跨源策略。致此:希望大家不要跟我一样懒,且畏惧尝试。

2023-11-18 16:37:41 350

原创 【js理解】call(),apply()以及bind()方法之间的共同点以及区别

call(),apply()以及bind()方法之间的共同点以及区别

2022-11-23 21:16:05 191 1

原创 【js学习】闭包理解

闭包

2022-11-23 10:43:30 273

原创 [leetcode] 805数值的均值分割

折半搜索,二进制枚举

2022-11-15 14:28:53 122

原创 【leetcode】 698 划分为k个相等的子集

记忆化搜索

2022-09-22 09:09:33 78

原创 【前端】同步异步区别

同步和异步

2022-09-12 13:15:37 978

原创 【leetcode】667 优美的排列2

667 优美的排列2

2022-09-08 13:21:46 87

原创 继承和混合的区别,以及各自使用场景

less混合继承

2022-09-07 15:35:13 328

原创 ajax复习第二弹

jquery fetch axios&ajax

2022-09-06 20:10:22 211

原创 前端踩坑日记 npm install -g ...

added 33 packages, and audited 34 packages in 896ms3 packages are looking for funding

2022-09-06 11:09:33 1499

原创 js建树、遍历操作

二叉树建树,遍历

2022-09-05 13:23:34 493

原创 【html】ajax基础

ajax基础

2022-09-05 09:55:59 1243

原创 leetcode 1302.层数最深叶子节点的和

层数最深的叶子节点和

2022-08-18 15:11:43 277

原创 【leetcode】1282.用户分组

leetcode 用户分组 js

2022-08-12 14:57:26 190

原创 迭代和递归区别。es6 尾递归

递归、尾调用、迭代

2022-08-11 20:39:13 221

原创 js中的this问题

js中的this问题

2022-08-09 22:17:00 103

原创 【前端学习】unicode码点问题 es6,为什么\u{20BB7}和\uD842\uDFB7相同

unicode码点,es5和es6unicode码点转变

2022-08-09 10:30:46 305

原创 【前端学习】bootstrap 轮播图参数,以及js方法改变其参数。

bootstrap轮播图

2022-08-08 11:08:01 445

原创 29两数相除,递归求解

溢出是啥意思,我们都知道在计算机中,数使用二进制保存的,如这个第一位就是符号位。计算机用补码保存数据,所以会溢出。用自己想出来的办法求解实在是太舒服了 虽然性能很差!首先它有个32位有符号整数环境的前提,所以得把边角处理一下,如果除数为-2^32:被除数为1,结果就是它本身。被除数为-1,结果为2^32-1如果被除数为-2^32:除数为-2^32,结果就是1。除数为其他,结果为0因为不能使用乘法除法以及mod运算,所以我用加减法,然后用除数dividend以次跟被除数的倍数d比较.

2022-04-29 14:22:07 167

原创 字符串匹配KMP算法

KMP算法和暴力搜索的差别在于多了一个next数组。暴力求解class Solution: def strStr(self, haystack: str, needle: str) -> int: for i in range(0,len(haystack)-len(needle)+1): flag = True for j in range(0,len(needle)): if haystac

2022-04-27 16:00:32 98

原创 【leetCode】396.旋转函数

import numpy as npfrom typing import Listclass Solution: def maxRotateFunction(self, nums: List[int]) -> int: length = len(nums) sum = [] for i in range(0,length): count = 0 s =0 for j ..

2022-04-23 13:02:17 736

原创 386字典序排数,学会用递归的思想

刚拿到这个问题的时候,我想到的只是第一位字典序排序,所以我把第一位为1的数字按照从小到大的顺序排下去了,很明显这样是有问题的,下面举个例子:1,10,11.。。。100,但是100应该是在10后面的,按照字典序的原则,0一样,这样的话单纯的迭代可能就解决不了这个问题了,因为每次在结果列表里面放入一个数之后,应该考虑比它位数多的数字里面有没有前几位和它一样的数。想到这里我也想到了用链表来求解这个问题,因为链表在插入的时候只需要O(n)的复杂度,这个问题跟桶排序有点类似,但又有点不同,因为它不是排序,而是排

2022-04-20 19:58:43 369

原创 论文阅读-SEFRON: A New Spiking Neuron Model With Time-Varying Synaptic Efficacy Function

1、数据编码首先介绍一下该神经元模型论文里面提到的编码方式:群体编码(population encoding)编码步骤:1、计算发放强度(就是指发放的欲望有多大)其中第h个接受域的μh和是中心和标准偏差,计算公式如下所示:然后根据所计算得到的发放强度去计算发放时间:def spiking_genersate(train_data): mu=par.mu #中心 sigma=par.sigma #偏离 RF=par.RF #接收域神经元总数

2022-04-18 22:20:28 296 1

原创 【leetcode】链表题强化,23.合并k个升序链表 24.两两交换链表中的节点25.k个一组翻转链表

23.合并k个升序链表首先拿到这个问题,其实思路很简单,因为它是升序的,所以你只要比较每个列表的第一个,然后把小的放到最后整合的数组的最后一个就可以了。class Solution: def mergeKLists(self, lists: List[ListNode]) ->ListNode: #这里的lists记录每一个链表的头结点 head = ListNode() #头结点,记录链表的头结点 p = ListNode()

2022-04-18 11:54:54 248

原创 【leetCode】区间和检索-数组可修改

问题描述:这个你就可以看出这个问题就是很简单的数组修改以及数组求和问题,但是刚刚接触算法的我,也只会暴力,就是每次for循环进行求解。看了题解之后知道有前缀和、线段树、树状数组三类,写了一下用前缀和去求解这个问题的代码,但是不是最终答案。首先解释下,前缀和是什么意思,就是先提前建立数组保存在这个数之前所有数的和。class NumArray: def __init__(self, nums: List[int]): self.nums =nums self.

2022-04-05 14:11:51 409

原创 【概念了解】马尔可夫链,蒙特卡罗

因为看论文看到这个就有点想要了解一下,拖延症真是一个害人的东西已经看到很久了才想要来了解一下。首先,他是一个以概率进行状态转换的东西。比如说今天我打篮球了,那我第二天打球的概率是20%,健身的概率是50%,休息的概率是30%,这个就是马尔科夫链的方法。先了解一下他的三要素:1、状态空间:states space,用于记录当前状态。2、无记忆性:当前状态只依赖于上一状态,与之前的状态无关,因为该算法认为,之前的状态已经体现在上一状态了,所以只依赖于上一状态。3、状态转移矩阵。应用:股市的判断:

2022-04-04 10:40:19 446

原创 【leetCode】强密码检验器

问题描述思路:按照原字符串的顺序用字典法创建字典,键值为连着的该元素的个数。1、首先检测是否有需要添加的数据类型和是否有需要增加或减去字符。创建完字典后先判断是否有三个以上连续的值,有要通过插入元素来分离,3个需要1个,4个需要一个,5个需要两个,6个需要两个,7个需要3个,方法为n/2-1+n%2如果是更换元素 3-1 4-1 5-1 6-2 7-2 那他需要的次数为n/3对于这道题来说删除、插入、替换的顺序很重要。先说说题解的方法。大问题分小问题,根据字符的长度可以分为三种:1、长度

2022-04-03 22:12:40 716

原创 【leetCode】二倍数数组对,自除数

问题提出给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。问题分析拿到这个问题的时候想到的是数值小的数2倍之后的值也一定是小的,所以当遍历的时候一定只需要单方向的向前遍历就行了。比如排序之后一组数为1,2,4,8,它的二倍数结果也是逐渐增大,这很好理解,2比1多了一个delta增量,这个增量也要

2022-04-02 10:19:44 443

原创 【优化算法】Nesterov算法

首先Nesterov动量优化算法是Momentum优化算法的一种改进。比较这两个算法的算法步骤,基本都一样,差别就在于应用临时更新这一句即先用当前的速度v先更新一遍参数,这样做后,Nesterrov算法比Momentum算法更新更快,因为在每一次更新的时候都是基于当前速度和梯度的更新,那我在求梯度之前就先进行一次对于当前速度的更新,就会加快收敛速度。# coding=utf-8"""基于小批量梯度下降来实现的Nesterov参考:https://blog.csdn.net/bvl1010111

2022-03-31 21:50:42 6122

原创 【优化算法】Momentum

引入一个参数自然有它的原因,那这里引入动量的原因是什么:类似这张图,垂直方向的斜率比水平方向的斜率大很多,会导致很多没必要的偏移量,加入一下动量因子可以减少偏移量。动量法与SGD不同的点在于,它保存了历史的梯度,就像图上画的,B点实际下降方向是A点下降方向和B点下降方向的共同决定的。# coding=utf-8"""基于小批量梯度下降来实现的Momentum(动量)参考:https://blog.csdn.net/bvl10101111/article/details/72615621作用

2022-03-25 19:03:52 1293

原创 【leetCode】括号生成,dp,剪枝

拿到这道题的时候还挺蒙的,因为不知道该怎么去求解。然后就尝试写出前面几种结果1、‘()’2、‘(())’‘()()’3、‘((()))’‘()()()’‘()(())’‘(())()’‘(()())’4、["(((())))","((()()))","((())())","((()))()","(()(()))","(()()())","(()())()","(())(())","(())()()","()((()))","()(()())","()(())()","()()(())","()()(

2022-03-24 09:04:00 207

原创 【算法解析】随机梯度下降 SGD以及它的扩展

跟SGD随机梯度下降有关的还有两种算法,一种是mini-batch小批量梯度下降法MBGD,另一种是BGD批量梯度下降法,这三种之间的区别在于BGD是所有样本都要进行梯度求解,而SGD是随机采取一个样本进行求解,而MBGD是采取多个样本但不是全部样本。假设线性回归函数为:那么损失函数为那优化的时候肯定是为了损失函数变的更小,也就是hθ减去y的值更近,这也就是平方的好处,消除了正负值的影响。那为了使两者最近,θ应该怎么变,就可以进行求导求解往结果变小的方向变。求解一下导数:这里的h’(θ)就是

2022-03-23 13:48:03 430

空空如也

空空如也

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

TA关注的人

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