资讯动态

leetCode100算法开源笔记分享

发布时间:2026/10/4 2:44:01 来源:尧图企业网站定制
磁盘内存数据页InnoDB 从磁盘拉取数据到内存 的最小单位 默认 16KB一行数据数据页包含多行数据存在磁盘中如果要修改一个数据需要从磁盘把数据拉到内存里假设你要把id5的用户余额从 1000 改成 900。第一步把那一页从磁盘拉到内存磁盘 内存┌──────────┐ ┌──────────────┐│ 页3 │ ──读入──→ │ Buffer Pool ││ (含id5)│ │ ┌────────┐ │└──────────┘ │ │ 页3 │ ││ └────────┘ │└──────────────┘第二步在内存里改直接把内存中页3里的id5那行改成 900。第三步写 redo log在 redo log 里记一笔“页3的偏移量100处值从1000改成了900”-有页号偏移量直接定位第四步页3变成脏页意思是内存里改了但磁盘上还是旧的。后台线程会找机会把它刷回磁盘。系统崩溃时可以直接从redo log里恢复保证数据始终是900实现持久性为什么把数据页拉从磁盘拉到内存来还拉一大把数据因为磁盘读需要进行寻址时间是ms级而cpu是nm级拉到内存来读速度快的多leetcode100最大子数组和在一个整数数组中找到一个数字连续子数组和要最大思路利用动态规划dp[i]定义为以nun[i]结尾的最大连续子数组和确保连续性不能定义为前i个数中最大子数组和保证不了连续性dp[i]max(dp[i-1]num[i],num[i]);如果前面的贡献是负那就直接抛弃从num[i]重新开始如果前面贡献是正就加上反转链表给定一个链表头节点将链表反转思路脑子里面一定要有这张图先画出来维护两个指针prev前一个节点初始为null和curr当前节点初始为head。遍历链表每次把curr.next指向prev实现反转。然后prev和curr同时后移一步继续处理下一个节点。当curr为null时prev就是新的头节点。![[屏幕截图 2026-10-03 172545 3.png]]一个前驱指针prev和一个curr指针反转时curr.nextprev直到currnull先初始化ListNode prevnull ListNode currhead;while(curr!null){ListNode tempcurr.next;curr.nextprev;prevcurr;currtemp;}return prev;

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑