随笔分类 -  开发内容 / 数据结构的算法最优解

摘要:https://blog.csdn.net/woshicver/article/details/106678726?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlo 阅读全文
posted @ 2023-05-05 17:07 cambra 阅读(40) 评论(0) 推荐(0) 编辑
摘要:变量级别: mysql架构环境:jsp->action->service->dao->mysql(应用->dao->数据库) memcached(缓存)+mysql+垂直拆分(如买家、卖家)(dao->缓存) mysql主从复制读写分离(master->slave) 分库分表(分库:业务相关的一个库 阅读全文
posted @ 2021-01-18 17:47 cambra 阅读(672) 评论(0) 推荐(0) 编辑
摘要:服务器集群常用来设计和实现数据缓存,常见的策略就是:将数据的id进行哈希函数计算,将得到的值进行取余,根据结果将数据分配到该服务器上面。 常见的问题:增加或者删除机器时,代价会很高,所有的数据都要进行数据的迁移。 一致性哈希算法可以解决该问题:将机器放在环中,将数据的id经过哈希计算后放入环中,顺时 阅读全文
posted @ 2020-10-27 15:55 cambra 编辑
摘要:题目是一个占用64B的URL,查找其是否存在在100亿个黑名单网页中。允许万分之一的判断失误率,空间限制为30GB。 布隆过滤器常用的场景是黑名单系统、垃圾邮件过滤系统、爬虫的网址判重系统,并且对失误率有一定的容忍度,但是对空间的要求比较严格。 哈希函数(散列函数):输入域是非常大的范围,但是输出域 阅读全文
posted @ 2020-10-22 17:46 cambra 阅读(106) 评论(0) 推荐(0) 编辑
摘要:这是最经典的动态规划的方法,其中从左上角开始,只能向下或者向右走是这个问题的条件,也是入手的地方 采用累加的方式,向下累加,向右累加 之后根据这一行和这一列,之后的数据都要比较它上边的更小还是右边的更小,最后得到最终的数据。 这样的思路对于代码的实现有点繁琐,可以使用空间压缩的方式进行实现。 还是采 阅读全文
posted @ 2020-10-20 16:50 cambra 阅读(126) 评论(0) 推荐(0) 编辑
摘要:斐波那契数列即为F(n)=F(n-1)+F(n-2),如1、1、2、3、5、8、13... 在计算的时候,通过最简单的递归计算,时间的复杂度是O(2N) 还有一个就是循环的一直计算的方法,时间的复杂度是O(N) 最小的时间复杂度的计算的方法是O(logN),这是因为这个函数是一个二阶递推数列,即这几 阅读全文
posted @ 2020-10-20 16:15 cambra 阅读(105) 评论(0) 推荐(0) 编辑
摘要:这是一个m个人围成一个圈,数到i的那个人就自杀最后只留下一个人的算法问题 其中的进阶算法的思路是: 1、每个编号报数的问题,编号A(1,2,3...i)的循环报数为B(1,2,3...i,i+1,i+2...2i,2i+1...),这样在没有杀人的时候,他们的关系为A=(B-1)%i+1 2、新旧编 阅读全文
posted @ 2020-10-15 09:56 cambra 编辑
摘要:在求最大子矩阵中,有两个核心的思想 1、以行进行切割,每列的数据累加,其中遇到0的时候归零。 2、以每次切割的结果进行计算,可将其视为柱状图,相邻的柱进行相加,其中必须满足为矩形状。 这样是求最大子矩阵的思路。 最后还有很重要的一点就是在这些数据进栈的时候,必须必栈顶的数大才可以进入,当小于的时候开 阅读全文
posted @ 2020-10-13 15:30 cambra 编辑
摘要:场景:三个柱子,左边从小到大排列,要把左边的全部移动到右边 规则:移动必须要经过中间的柱子,任何柱子上不能违反从小到大排列的规则,打印移动过程和最优移动总步数。 有两种解法: 其中递归的解法如下: 左边移动思路:想要移动最底下的到中间,就要移动上一个,依次递推,直到最上边的就可以移动到中间,然后要把 阅读全文
posted @ 2020-09-21 14:35 cambra 阅读(199) 评论(0) 推荐(0) 编辑
摘要:运用的是两个递归 --> 第一个负责将栈底的数据删除并返回。 第二个栈就是正常的递归操作栈,空的时候返回,不是空的时候使用上面的方法获取栈底的数据,在继续调用该方法,最后将获取的数据添加进去。 阅读全文
posted @ 2020-09-16 17:09 cambra 阅读(100) 评论(0) 推荐(0) 编辑
摘要:该查找函数的方便时因为在查找中只有加减运算,计算中会节约很多时间 思路是斐波那契数组[fib]是作为下标来进行查找的,确定下标k后需要扩容目标数组[temp]的长度和确定的fib[k]一样长 然后所查找的位置[mid]:temp的最低+fib最高-1 大于的话:temp的最高位置=mid-1,k-- 阅读全文
posted @ 2020-07-23 11:31 cambra 阅读(168) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示