![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法专栏
文章平均质量分 59
加油
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
jingqiulyue
迭代升级中
展开
-
【经典】股票问题
这类问题的「状态」有三个,第一个是天数,第二个是允许交易的最大次数,第三个是当前的持有状态(1 表示持有,0 表示没有持有)状态转移方程原创 2023-03-14 14:33:42 · 253 阅读 · 0 评论 -
【经典】滑动窗口
滑动窗口目标:解决子串、子数组问题原创 2023-03-14 11:47:50 · 123 阅读 · 0 评论 -
【经典】200. 岛屿数量
岛屿数量原创 2023-03-14 01:00:45 · 115 阅读 · 0 评论 -
【专项训练】算法面试通关大全
编程是内力的修炼!!!原创 2023-03-14 00:04:06 · 168 阅读 · 0 评论 -
【专项训练】10大常见代码模板
要上战场写代码,没有装备怎么可以……原创 2023-03-11 23:43:07 · 136 阅读 · 0 评论 -
【专项训练】字符串算法
Java和Python:string不可变的!每次改变,都是创建了新string!原创 2023-03-11 23:21:23 · 189 阅读 · 0 评论 -
【专项训练】动态规划-3
动态规划原创 2023-03-11 12:03:09 · 362 阅读 · 0 评论 -
【专项训练】排序算法
排序算法非比较类的排序,基本上就是放在一个数组里面,统计每个数出现的次序最重要的排序是比较类排序!O(nlogn)的3个排序,必须要会!即:堆排序、快速排序、归并排序!快速排序:分治经典快排归并排序可以认为是快排的逆向操作堆排序:建议直接使用系统的priorityqueue、heap默认:小根堆在array中手动维护一个堆!原创 2023-03-11 01:53:04 · 364 阅读 · 0 评论 -
【专项训练】布隆过滤器和LRU缓存
布隆过滤器:与哈希表类似哈希表是一个没有误差的数据结构!原创 2023-03-10 22:36:24 · 552 阅读 · 0 评论 -
【专项训练】位运算
位运算原创 2023-03-10 21:47:33 · 111 阅读 · 0 评论 -
【专项训练】红黑树和AVL树
在这种近似平衡状态下,红黑树的时间复杂度,还是logn原创 2023-03-10 20:15:40 · 566 阅读 · 0 评论 -
【专项训练】高级搜索
高级搜索,这部分非常烧脑,可略过!原创 2023-03-10 18:19:47 · 454 阅读 · 0 评论 -
【专项训练】字典树和并查集
字典树和并查集原创 2023-03-10 12:03:06 · 367 阅读 · 0 评论 -
【专项训练】动态规划-2
动态规划原创 2023-03-09 23:55:52 · 102 阅读 · 0 评论 -
【专项训练】动态规划-1
动态规划以上,并没有什么本质的不一样,很多时候,就是一些小的细节问题!要循环,要递归,就是有重复性!动态规划:动态递推分治 + 最优子结构会定义状态,把状态定义对。原创 2023-03-09 19:55:37 · 544 阅读 · 0 评论 -
【专项训练】二分查找
二分查找索引指的是可以用下标进行访问!原创 2023-03-09 16:40:49 · 80 阅读 · 0 评论 -
【专项训练】贪心算法
贪心算法某些时候,可以局部最优,推到全局最优!原创 2023-03-09 15:27:48 · 456 阅读 · 0 评论 -
【专项训练】深度优先搜索和广度优先搜索
深度优先搜索和广度优先搜索原创 2023-03-09 14:36:19 · 74 阅读 · 0 评论 -
【专项训练】分治、回溯
分治、回溯其实就是递归,只是是递归的一个细分原创 2023-03-09 12:26:01 · 430 阅读 · 0 评论 -
【专项训练】泛型递归、树的递归
找最近重复子问题,直接写递归!原创 2023-03-09 10:37:48 · 405 阅读 · 0 评论 -
【专项训练】堆和二叉树、图
堆和二叉树、图。原创 2023-03-09 00:07:38 · 56 阅读 · 0 评论 -
【专项练习】树、二叉树、二叉搜索树
树、二叉树、二叉搜索树、堆二叉树遍历树本身没办法写很好的循环,我们要拥抱递归!二叉搜索树的查询和操作都是logn的!原创 2023-03-08 20:31:39 · 58 阅读 · 0 评论 -
【专项训练】哈希表、map、set
查询、添加、删除原创 2023-03-08 18:34:27 · 57 阅读 · 0 评论 -
【专项训练】栈、队列、优先队列、双端队列
主题:栈、队列、优先队列、双端队列优先队列。原创 2023-03-08 17:08:33 · 67 阅读 · 0 评论 -
【专项训练】数组、链表
list = [ ]链表linked list数组若有序,查找元素,可以用二分查找有序,但是是链表的情况下,如何加速呢?答:用跳表如何给有序的链表加速?升维!增加索引!用空间换时间!加1级索引,相当于步伐走2步。原创 2023-03-08 14:54:50 · 329 阅读 · 0 评论 -
【专项训练】前言:刻意练习,不断的过遍数才是王道
想熟练,一定要刻意练习!原创 2023-03-08 10:38:37 · 418 阅读 · 0 评论 -
【python】剑指offer代码大集合2
剑指offer python原创 2023-03-07 16:04:15 · 432 阅读 · 0 评论 -
【python】剑指offer代码大集合
剑指offer 面试题python代码,可执行原创 2023-03-07 15:10:06 · 394 阅读 · 0 评论 -
【python】各种排序算法代码大集合
超级好用的口诀:时间复杂度:快些以nlogn的速度归队。稳定性:心情不稳定,快些选一堆好友来聊天吧。直接插容易插变O(N),起泡起得好变O(N).(初始序列已经有序)插入排序法在近乎有序的情况下,效率特别高,通过插入排序,可以引申出希尔排序归并排序:左半部分排好序,右半部分排好序,然后,把他们合并成一个有序的数组在有序数组中查找一个数:遍历O(n),二分O(logN)Merge sort和Quick sort:都使用了分治算法归并排序:切+merge。原创 2023-03-07 10:43:51 · 632 阅读 · 0 评论 -
数据挖掘思维与实战
开篇词 | 掌握数据挖掘,搭上划时代的数字化列车原创 2020-08-29 20:27:02 · 907 阅读 · 0 评论 -
极客大学--7 天掌握算法面试必考知识点
一维的数据结构要加速的话,常用的方法就是升维。升一级维度后,就会有多一级的信息在里面。怎么来进行题目的练习?五毒神掌(5遍)ac只是第一遍。。。看网友的题解wu知道并且运用就好了刷题的时候,最大的误区是:只刷一遍要进行加速的话,核心思想是 升维 + 空间换时间去掉CH,去国际站,过遍数,算法能力肯定会提升的~把已有的题解拿出来,背诵 + 默写搞熟练了就好然后,可以看看网友的题解,扩展思路对于树的面试题,基本是递归的,我们要拥抱递归。时间复杂度是lo..原创 2020-08-29 16:49:32 · 353 阅读 · 0 评论 -
程序媛的自我修养--好好做题--9
二叉树的序列化和反序列化方法:你怎么序列化的,就怎么反序列化// 先序序列化public static String serialByPre(Node head) { if(head == null) { return "#!"; } String res = head.value + "!"; res += serialByPre(head.left); res += serialByPre(head.right); return res;}public static Node原创 2020-07-14 17:18:57 · 145 阅读 · 0 评论 -
程序媛的自我修养--好好做题--10--leetcode--持续更新中
这节就写一些leetcode经典的题目吧!有时间再写~原创 2020-07-13 16:52:58 · 142 阅读 · 0 评论 -
程序媛的自我修养--好好做题--7
20180602进阶班-第2章1.什么是窗口?L窗口的左边界。R窗口的右边界。一开始窗口内没有东西。R往右移动一下,窗口中就进数了。R只能往右走。(加数)L往右走(减数)。都不能回退。L不要超过R。想知道窗口内的最大值。窗口内最大值的更新结构(相求最大值,但是不想遍历,用一种结构:双端队列结构)用双端队列的原因:只是希望可以从头部或者尾部加东西或者减东西。如果要求的是窗口内最大值的更新的话,一定要保证从头部到尾部放的数是从大到小的。加数的逻辑:有一个数进窗口,双端队列怎么调整?从尾部原创 2020-07-13 16:07:48 · 139 阅读 · 0 评论 -
程序媛的自我修养--好好做题--8
20180603进阶班-第3章1.二叉树的结构根据一个数组怎么建立出一棵树来。这个树是所有子树的头部,子树的最大值。子树最大值是头部。方法1.:建立大根堆O(N).方法2:单调栈左右啥都没有,那就是全局最大值,是头结点。两边都有,选小的,挂在他的底下。方法:单调栈类比直方图。单调栈的实现:如果一个数组表示直方图的话,在其中找出最大正方形。//[4,3,2,5,6] 准备一个栈,单调栈。栈中放下标。K是当前数的左边界。在当前数出现的时候,一个数从栈中弹出,就相应的结算弹出的位置原创 2020-07-13 15:53:51 · 156 阅读 · 0 评论 -
程序媛的自我修养--好好做题--6
1.给定一个整数,判断该数是否是回文数注意:不要转换成char,那样可能在OJ上超时了。n = (n % help) / 10; ==>565 , 相当于两个4消失了。2.基础方法:可以先排序。123579 sum 8(遍历每个数,看后面哪个数可以与之相加,和为8)哈希表方法:把1 2 3 放到哈希表中,8-5 ?= 3,在之前加入过的。O(n) O(n)最好的方法:双指针 常数项很低时:O(NlogN) 空:O(N)返回索引的位置。有序:无序:先排原创 2020-07-13 15:36:40 · 205 阅读 · 0 评论 -
程序媛的自我修养--好好做题--5
1.比较器的使用import java.util.Arrays;import java.util.Comparator;import java.util.PriorityQueue;public class comparestudents { public static class Student { public String name; public int id; public int age; public Stud原创 2020-07-13 14:18:38 · 159 阅读 · 0 评论 -
程序媛的自我修养--好好做题--4
1.认识并查集基本2个操作:查两个元素是否属于同一个集合。合并。如果集合的结构是list,代价蛮高的。如果集合实现成为hashset,还是有遍历代价。并查集让整体的代价尽量变低。每个元素自成集合。任何一个集合,想查询在哪个集合?就是不断往上找,发现找的头部是指向自己的,停。这个头部就叫做元素所在集合的代表点。上图中①所在的集合,代表点是②。看大小,小的挂在大的底下。小集合的头部挂在大集合头部的底下。以代表点代表元素所在的集合。如果A与B的代表点相同,则说明A与B属于一个集合。查询原创 2020-07-13 13:50:24 · 132 阅读 · 0 评论 -
程序媛的自我修养--好好做题--3
1.一致性哈希如果后台有3台机器,%3,实现负载均衡,但是,如果增加机器或者减少机器,要%的数量就发生了变化。这样修改代码倒是其次,关键是数据迁移的成本太高了。加节点和减节点很方便。负载不均衡的解决方法:虚拟节点。让虚拟节点抢这个环。2.随时找到数据流的中位数优先级队列,本身是堆结构(底层就是堆)。本题,如果对收集的数字现排序,这是很慢的。具体方法:准备2个堆,大根堆和小根堆。要使得前n/2的数字放在大根堆中,后n/2的数字放在小根堆中。这样正好可以压中中位数,代价:O(logN)原创 2020-07-13 12:59:43 · 607 阅读 · 0 评论 -
程序媛的自我修养--好好做题--2
程序设计:宏观调度行为–非常棒的思维1.转圈打印矩阵如果把思路限制在局部位置坐标如何变化上面,那么这题很难写了。正确做法:给4个变量来标记左上角和右下角的点。这两个点可以压中一个矩阵。只打印这一圈,在合适的位置停。这样就有转圈的感觉了。Code:2.“之”字型打印矩阵正确做法:a:(r1,c1)向右移动,走到不能再走,向下移动。b:(r2,c2)向下移动,走到不能再走,向右移动。这样每次都能压中一条线。a和b的行动策略是独立的。要能够控制打印的方向,究竟是从左下方往右上方呢?还原创 2020-07-13 11:06:26 · 152 阅读 · 0 评论