自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis缓存总结

更新缓存会产生无效更新,而且会存在较大的线程安全问题;删除缓存的本质是延迟更新,没有无效更新,线程安全问题相对较低,等需要的查询的时候,在更新到缓存。先更新数据库,再删除缓存可以满足原子性的情况下,线程安全问题概率较低;先删除缓存,再更新数据库,线程安全问题高,因为操作缓存和操作数据库的速度差异大。单体系统:利用事务机制;分布式系统:利用分布式事务机制。优点:确保两者的原子性,能最大程度保证线程安全。3、如果未命中,则查询数据库。2、如果缓存命中,直接返回。4、将数据库数据写入缓存。

2024-07-08 10:00:29 302

原创 redis缓存问题

逻辑分析:假设线程1在查询缓存之后,本来应该去查询数据库,然后把这个数据重新加载到缓存的,此时只要线程1走完这个逻辑,其他线程就都能从缓存中加载这些数据了,但是假设在线程1没有走完的时候,后续的线程2,线程3,线程4同时过来访问当前这个方法, 那么这些线程都不能从缓存中查询到数据,那么他们就会同一时刻来访问查询缓存,都没查到,接着同一时间去访问数据库,同时的去执行数据库代码,对数据库访问压力过大。2、布隆过滤:如果通过布隆过滤判断数据不存在,那就是不存在,如果判断数据存在就不能判断真假。

2024-07-07 21:28:53 432

原创 动态规划--买卖股票含冷冻期309

4、冷冻期(上次状态3)不持有股票的利润 j==3。这道题很明显下一天的利润需要由上一天的状态推导出来,所以这是很明显的动态规划问题。冷冻期的不持有来源:上次卖出股票的不持有。1、定义dp数组含义:dp[i][j]第i天第j个状态所得到的利润。持有股票利润来源:上一次持有、没有卖出股票,这次不持有(下次有冷静期)这次买入、冷冻期的不持有买入。)来源:上次所有不持有的状态。

2024-03-31 21:43:30 1263 1

原创 原码、反码、补码移位

算数左移算数右移反码的算数移位总结。

2024-03-30 09:00:43 216

原创 算法(10)--动态规划

递归公式: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);第i个物品时的价值,dp[i - 1][j - weight[i]]代表在第0~(i-1)物品中的(j - weight[i])的最大价值。第i件物品的重量是weight[i],得到的价值是value[i]。举例:确定物品1时,dp[4]的值要么是直接继承原来15的值,要么是由物品1的价值+dp[4-物品1重量],所以可知。当i==0时,代表物品0是否取的状态,

2024-02-28 15:46:11 1504 1

原创 算法(9)--哈希表(1)哈希表基础知识

在数组的某个位置(y)建立链表结构或者树的结构来增加这个索引可以承载的元素值。个人理解:现在我们有一个数组(arr)和一个值(x),然后通过哈希函数(y = ax),找到数组下得索引(y),然后就能通过索引访问数组里面的元素( arr[y] )。这个方法里的数组只能放一个元素,但出现哈希碰撞时,索引值自动加一,这就得保证哈希表的长度得大于要存储数据的量。哈希碰撞:当某两个值(x)通过哈希函数计算出来的索引值(y)相同时,就会产生哈希碰撞。优点:通过哈希函数找到索引,能快速访问数组的值。

2024-02-07 21:02:00 337 1

原创 算法(8)--链表(5)环形链表 力扣142

走完 x = (n-1)(y-z) + z ,二者依然还在环形入口相遇,因为从相遇点出发的节点只是转了 (n-1)(y-z)圈回到第一次相遇点,然后再走z步,x的意思是,从头结点到环形入口的距离,所以第二次相遇时,他们依然在环形入口。我们定义两个指针,一个快指针(fast)一次走两步,一个慢指针(slow)一次走一步,如果最后他们相遇了,说明该链表有环。即 2(x+y)= x+y+ n(y+z)化简得:x = (n-1)(y-z) + z , 这个式子意味着,如果。时,依然设置两个指针,

2024-01-31 09:25:03 360

原创 算法(7)--链表(4)相交链表 力扣160

这道题看似是求两个链表的相交节点,其实是想让我们试图消除两个链表在相交前的链表长度差,如果知道链表长度差后,我们就可以把长的链表先循环到和短的链表同一个起始位置,然后一起往下遍历节点,当他俩的节点相同时,这个节点就是相交链表的相交点,这也是法一的思路。当链表a走到最后时,在赋值到链表b的起点重走一遍b的链表,b链表也是如此操作,到最后,两个链表的指针走得长度是。2、走到尽头看不到你,我把你的路重走一遍直到遇见了你,二者相加等于他们两条链表的总长度,把差值补上了。1、求出两个链表的长度,消除链表长度差;

2024-01-30 09:52:50 395 1

原创 算法(6)--链表(3)删除第N个节点 力扣19

思路:一开始先让fast指针走N+1步(走N+1步的原因是获得待删除节点的上一个节点,用于删除),然后fast指针和slow指针一起走,直到fast为null。很明显如果fast指针和slow指针如果相差N个距离时,最后slow指针指向的节点就是答案。1、遍历一遍链表,算出链表的长度,然后求出链表倒数的第N个节点,再遍历一遍。法一的思路非常直接明了,就是直接使用两个循环就行,下面代码是力扣里的题解。,试想一下,fast指针最后遍历完了链表,slow指针指向哪才是倒数第N个元素呢?快慢指针的距离就是N。

2024-01-29 09:49:01 376

原创 算法(5)--链表(2)反转链表 力扣206

本人是刷《代码随想录》这本书时记录一下自己的学习笔记。

2024-01-28 11:12:33 350 1

原创 数学建模--灵敏度分析

上面的模型是基于市场价格下降1元和牛每天都基于5斤增重这两个条件不变,可在现实中这两个条件不是稳定的,为了检验是不是对于所有的市场价格下降率,这个模型都适用?例如:若市场下降率改变了1%,t下降了35%,这说明t对市场价格下降率比较敏感,模型不稳定,意味着我们建立的模型需要把。当我们改变了模型里面的原有的一些常量,会引起模型变化非常大(小),我们就说这个模型稳定性不强(强),灵敏性高(低)。在优化中,我们常常会将决策变量前面的参数直接取值,如运费的价格、物料的成本等,但事实上价格成本等因素受市场。

2024-01-24 21:35:16 1858

原创 算法(4)--链表(1)力扣203

本文实现删除链表两种操作:一种是带有头结点:需要准备两个节点,记录一个记录待删除节点的前一个节点,记录一个记录待删除节点;一种是不带有头结点:执行逻辑分为两个,一个是首结点的删除,一个是其他节点的删除。

2024-01-22 20:33:36 344

原创 算法(3)--模拟

这题是一道经典的模拟试题,所谓模拟就是模拟过程,按照题目的逻辑模拟一遍执行过程模拟题目通常具有。

2024-01-21 14:13:56 360 1

原创 算法(2)--双指针

快慢指针:一个快指针和一个慢指针可以用一个for循环完成两个for循环的工作(条件是具有单调性)滑动窗口:不断调节子序列的起始位置和终止位置,起始位置和终止位置的区间不可间断。

2024-01-20 09:39:46 302

原创 算法(1)--二分法

1、二分查找注意区间的定义while(left

2024-01-18 20:58:28 382 1

原创 力扣647回文子串--动态规划

首先我们来想一下动态规划的五部曲:1、确定dp数组以及下标的含义;2、确定递推公式;3、dp数组的初始化;4、确定遍历顺序;5、举例推导dp数组;我们定义一个boolean的二维数组来作为dp数组,下标i和j分别表示数组的行和列上图中有三种情况可以得到回文子串:1、当i==j时,也就是数组的对角线都是单个字母,即可认为是回文子串2、当i==j+1时,也就是两个相邻的字符相同是回文子串;

2023-12-06 09:49:40 30 1

原创 三种希尔排序

但k有个漏洞,这个k只适用于第一次的分组。

2023-10-14 21:49:43 34 1

原创 在HashSet中重写hashcode()方法一定要重写equals()

重写hashcode()方法一定要重写equals()

2023-10-05 21:16:36 120

原创 StringBuilder详细源码分析(1)

父类中的append方法传入我们输入的字符串str,我们的str非null,所以跳过if来到给len赋值,给len赋值为我们传入字符串str的长度,然后调用ensureCapacityInternal方法,传入count(目前没有初始化,所以默认为0)+len,这个方法是为了判断是否需要扩容。这篇文章主要讲的是new StringBuilder(String str)这种构造方法的源码分析。第二种:16

2023-07-11 10:16:20 107 1

空空如也

空空如也

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

TA关注的人

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