- 博客(126)
- 收藏
- 关注
原创 【灵神高频面试题合集06-08】反转链表、快慢指针(环形链表/重排链表)、前后指针(删除链表/链表去重)
链表:06 反转链表 K个一组翻转;07 环形链表 重排链表(快慢指针);08 链表删除 链表去重(前后指针)。
2026-05-08 00:51:48
355
原创 【灵神高频面试题合集01-03】相向双指针、滑动窗口
相向双指针:01 两数之和 三数之和;02 接雨水 前后缀分解。滑动窗口(同向双指针):03 最短 最长 方案数。
2026-05-01 20:19:02
417
原创 【chap1&chap2-面试&程序性能分析】用Python3刷《代码随想录》
1、编程语言、代码规范(变量命名、代码留白);2、时间复杂度分析(插入排序、快速排序、冒泡排序;递归算法如求x^n)、程序的运行时间(超时是怎么回事、不同时间复杂度的算法能支持输入n的量级为多少);3、编程语言的内存管理(C++的内存管理、如何计算程序占用多少内存、内存对齐)、空间复杂度分析(递归算法如求斐波那契数、递归求二分)、以空间换时间的优化思路(哈希)。
2026-04-20 01:33:30
389
原创 【chap12-图论(P1-6深搜&广搜、P21拓扑排序)】用Python3刷《代码随想录》
1、深度优先搜索(所有可达路径)、广度优先搜索;2、岛屿系列:岛屿数量;3、拓扑排序:课程表
2026-04-12 01:10:53
386
原创 【chap11-动态规划(下 - 打家劫舍&股票问题&子序列问题)】用Python3刷《代码随想录》
3、打家劫舍:I-III;4、股票问题:I-IV、含冷冻期、含手续费;5、子序列问题:不连续、连续、编辑距离、回文。
2026-04-06 16:40:41
375
原创 【chap11-动态规划(上 - 基础题目&背包问题)】用Python3刷《代码随想录》
1、基础题目:斐波那契数、爬楼梯系列、不同路径系列、整数拆分、不同的二叉搜索树;2、背包问题:01背包(分割等和子集、最后一块石头的重量II、目标和、一和零)、完全背包(求组合数/求排列数/求最小数)、多重背包等。
2026-03-28 13:48:23
430
原创 【力扣-Python-74】搜索二维矩阵(middle)
有序二维矩阵整体二分的技巧:定义一个映射关系,对于一维索引,用整除列数得到行号,用取余列数得到列号。即:一维索引 index —> 二维行号 = index // n,二维列号 = index % n。有了这个映射,就可以直接对整个矩阵进行一次二分查找
2026-03-16 15:28:21
286
原创 torch.nn.Dropout vs torch.nn.functional.dropout 以及 model.eval() 下两者的差异(paddle同样适用)
结论:model.eval() 并不能使 nn.functional.dropout 失效,但能让 nn.Dropout 失效。
2026-03-09 11:57:13
400
原创 【力扣-Python-287】寻找重复数(middle)
给你一个长度为 n+1 的数组,数字范围在 1~n 内,其中恰好有一个数字重复出现(两次或多次)。找出这个重复数字要求:不能修改数组,只用 O(1) 的额外空间如:[1,6,3,4,5,2,2],其中2出现了两次,所以答案为2。
2026-03-06 11:48:13
246
原创 【力扣-Python-4】寻找两个正序数组的中位数(hard)
给你两个从小到大排好序的数组,找出两个数组合并后的中位数要求时间复杂度为 O(log(m+n)),m和n为两数组的长度如 nums1 = [1,3,5,14],nums2 = [2,4,8,9,11],合并后为 [1,2,3,4,5,8,9,11,14],总共9个数,正中间的为5。
2026-03-05 17:53:48
222
原创 【chap9-回溯算法】用Python3刷《代码随想录》
1、组合问题:77、216、17、39、40;2、切割问题:131、93;3、子集问题:78、90、491;4、排列问题:46、47;5、棋盘问题:51、37(二维递归)
2026-02-23 01:28:24
785
原创 【chap8-二叉树(下 - 修改与构造&二叉搜索树&公共祖先问题)】用Python3刷《代码随想录》
3、二叉树的修改与构造。4、二叉搜索树:(1)求二叉搜索树的属性;(2)二叉搜索树的修改与构造。5、二叉树公共祖先问题。
2026-02-03 12:15:39
837
原创 【chap8-二叉树(上 - 遍历方式&属性)】用Python3刷《代码随想录》
1、二叉树的遍历方式:(1)深度优先/前中后序遍历:递归法、迭代法 (借助栈实现递归);(2)广度优先/层序遍历:迭代法 (借助队列,先进先出)。2、二叉树的属性:对称二叉树;二叉树的最大/最小深度;完全二叉树的节点个数;平衡二叉树。3、涉及回溯(递归+回溯):二叉树的所有路径;左叶子之和;找树左下角的值;路径总和。。
2026-01-26 00:53:00
699
原创 【力扣-Python-滑动窗口经典题】567.字符串的排列 | 424.替换后的最长重复字符 | 76.最小覆盖子串
滑动窗口经典题汇总567.字符串的排列424.替换后的最长重复字符76.最小覆盖子串
2026-01-16 14:45:51
463
原创 【chap7-栈与队列 (含单调栈)】用Python3刷《代码随想录》
232、225:栈与队列的基本操作;20、1047、150:栈在匹配问题中的应用;239:获取滑动窗口的最大值,主要思想是队列没有必要维护窗口中的所有元素,只需要维护有可能成为窗口中最大值的元素即可,同时保证队列中的元素数值是由大到小排序的(双端队列 from collections import deque);347:求前k个高频元素,优先级队列(小顶堆 import heapq)单调栈:739、496、503、42、84
2025-12-29 01:53:38
618
原创 【力扣-Python-75】颜色分类(middle)
给定只包含 0、1、2 的数组(红、白、蓝),要求原地排序,使0在前、1在中、2在后。要求不能使用库排序,最好只遍历一次。又称为荷兰国旗问题
2025-12-21 17:04:13
265
原创 【阶段1:C++基础语法入门】黑马匠心C++教程(P1~P83)
C++基础语法入门:C++初识;数据类型;运算符;程序流程结构;数组;函数;指针;结构体。案例:通讯录管理系统
2025-04-13 15:45:08
1451
原创 cuda与pytorch版本兼容问题
查看CUDA版本的几个命令及区别:nvidia-smi、nvcc -V、print(torch.version.cuda)、print(torch.utils.cpp_extension.CUDA_HOME)。如何配置版本兼容的cuda和pytorch
2025-03-09 21:03:51
5744
原创 Visual Studio下载及安装教程(for C++)
Visual Studio下载及安装 -> 创建新项目 -> 创建文件 -> 编写代码并运行
2025-03-04 02:17:28
927
原创 df.explode() 及等价写法
df.explode() 可以按某列的值将一行拆分为多行,需要pandas版本 ≥ 0.25.0。可以使用 print(pd.__version__) 查看pandas版本。
2025-02-15 15:46:58
629
原创 对比category_encoders库和sklearn库中的OrdinalEncoder
OrdinalEncoder 是用来对数据中的分类特征进行编码、转换为整数标签的函数。本文旨在对比 from category_encoders import OrdinalEncoder 和 from sklearn.preprocessing import OrdinalEncoder 的用法。
2025-01-31 17:36:09
561
原创 pd.read_csv() 遇到的3个报错及解决方法
三个报错的解决方法:(1)ParserError: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.(2)ParserError: field larger than field limit (131072)(3)ParserError: ' ' expected after '"'
2025-01-22 12:41:43
956
原创 【下】王树森《小红书推荐系统公开课》- 课程笔记(特征交叉、行为序列、重排/推荐系统多样性、物品冷启动、涨指标的方法)
特征交叉(因子分解机FM、深度交叉网络DCN、LHUC/PPNet、SENet&Bilinear Cross&FiBiNet);行为序列(用户lastN序列特征、DIN&注意力机制、长序列建模SIM);重排(多样性、物品相似性的度量、MMR多样性算法、滑动窗口&业务规则约束、DPP多样性算法&Hulu的快速求解算法);物品冷启动(优化目标&评价指标、简单的召回通道、聚类召回、Look-Alike人群扩散召回、流量调控、冷启AB测试);涨指标的方法(评价指标、召回、粗精排、多样性、特殊人群、交互行为)
2024-12-15 22:00:17
3847
1
原创 dict.setdefault() 用法
setdefault 是Python中字典的一个方法,用于在字典中查找指定键,如果键存在,则返回对应值(而不是指定的默认值);如果键不存在,则在字典中添加该键,并将其值设置为指定的默认值
2024-09-22 23:46:11
2660
原创 【上】王树森《搜索引擎技术》- 课程笔记(概要、相关性)
1、概要:搜索引擎的基本概念、决定搜索满意度的因素(相关性、内容质量、时效性、个性化)、搜索引擎的评价指标、搜索引擎的链路(查询词处理、召回、排序);2、相关性:定义与分档(4档)、评价指标(离线为AUC和PNR,线上为DCG,它们分别属于pointwise、pairwise、listwise)、文本匹配(词匹配分数包括TF-IDF、BM25,都属于词袋模型;词距分数如OkaTP)、BERT模型结构及线上推理(交叉BERT、双塔BERT)、BERT模型的离线训练(预训练->后预训练->微调->蒸馏)
2024-08-25 13:48:21
3236
原创 训练五步走:前向传播、计算损失、清零梯度optimizer.zero_grad()、反向传播loss.backward()、更新参数optimizer.step()
outputs = model(inputs)前向传播,model为实例化后的模型;loss = criterion(outputs, targets)计算损失,criterion为定义的损失函数;Pytorch自动求导机制会将梯度值累加,故要optimizer.zero_grad()清零,去掉以前的梯度值;loss.backward()反向传播,通过自动微分计算损失函数相对于模型参数的梯度;optimizer.step()根据计算出的梯度更新模型的参数。
2024-06-29 23:08:01
2486
原创 Pytorch中的 .detach().cpu().numpy()
detach() 用于从计算图中分离出一个张量,即返回一个新的张量,与原张量共享相同的数据,但不会再计算梯度;cpu() 将张量移动到CPU内存中,因为numpy仅能处理CPU内存中的数据,不能直接处理GPU上的数据;numpy() 将Pytorch张量转换为numpy数组,共享内存,不会复制数据;总结:.detach().cpu().numpy() 是一个常见的链式方法调用,用于将一个在计算图中(即由autograd跟踪的)张量转换为numpy数组
2024-06-24 23:28:57
1981
原创 Pytorch中的数据与优化器:Dataset、TensorDataset、DataLoader、optimizer.param_groups
torch.utils.data.Dataset、torch.utils.data.TensorDataset、torch.utils.data.DataLoader、optimizer.param_groups
2024-06-22 17:19:56
2160
原创 【上】王树森《小红书推荐系统公开课》- 课程笔记(推荐系统基础、召回、排序)
推荐系统基础(基本概念、链路、AB测试);召回(ItemCF、Swing、UserCF、离散特征处理、矩阵补充、双塔模型、双塔模型+自监督学习、Deep Retrieval召回、其他召回通道、曝光过滤+Bloom Filter);排序(多目标排序模型、MMoE、预估分数融合公式、视频播放时长和完播率建模、特征及处理、粗排三塔模型)
2024-05-22 23:15:44
11732
15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅