自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode刷题记录:hot100强化训练2:二叉树+图论

递归就不写了,写一下迭代法顺便再写一下前序和后序的迭代法。

2024-06-15 17:12:05 615

原创 leetcode hot100强化练习 0 - 35

参考:二维数组的遍历技巧 https://labuladong.online/algo/practice-in-action/2d-array-traversal-summary/#%E7%9F%A9%E9%98%B5%E7%9A%84%E8%9E%BA%E6%97%8B%E9%81%8D%E5%8E%86。仔细想了下,n1和n2要么相交,要么都走向None,最终都是n1 == n2.单调队列,加入数字的大小代表人的体重,体重大的会把前面体重不足的压扁,直到遇到更大的量级才停住。把head.next断掉。

2024-06-02 19:54:10 732

原创 leetcode刷题记录:前缀和

适用范围:快速、频繁地计算一个索引区间内的元素之和。

2024-05-24 21:04:45 355

原创 leetcode刷题记录:岛屿问题

思路:dfs遍历岛屿,找到岛屿后把整个岛屿淹掉(置为0)先用dfs函数把边缘的岛屿淹掉,再统计岛屿数量。先淹掉一部分grid==0的,剩下的都是子岛屿。

2024-05-02 22:23:44 336

原创 leetcode刷题记录:归并排序和快速排序

树上每个结点的值是nums[lo:hi], 其中左子树是nums[lo:mid-1], 右子树是nums[mid+1:hi],根节点是nums[mid].在二叉树的纲领篇(记得放link)我们说过,二叉树问题有两种解法,一是遍历一遍二叉树,而是分解问题。第一次partition函数的执行时间最长,是数组总的元素数,所以partition的时间复杂度是O(N).但是有可能会碰到极端不平衡的情况,比如每次选出的p都在两端,导致左子树或者右子树为空,这样时间复杂度会大幅度上升,因此需要增加数组的随机性。

2024-04-29 08:57:16 619 2

原创 LeetCode刷题记录:二叉树的迭代遍历

参考:代码随想录https://www.programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%BF%AD%E4%BB%A3%E9%81%8D%E5%8E%86.html。

2024-04-25 09:02:01 291

原创 leetcode刷题记录 - 滑动窗口

这道题可以按照上面,先扩右边再收缩左边;但第一反应想到的是固定长度的滑动窗口,每次直接lo++ hi++。再用先扩后缩的框架写一遍,这种方式更不容易出错。

2024-04-17 23:17:12 300

原创 leetcode刷题记录:二分搜索的应用

这道题,看起来比较绕,其实是跟2一模一样的,只是换了个皮。代码逻辑原封不动,改一些变量名即可。

2024-04-08 09:33:52 212 2

原创 leetcode刷题记录:bfs

bfs的问题,就是一幅图,从起点走到终点,问最短路径。

2024-04-04 19:48:10 143

原创 leetcode刷题记录:动态规划之背包问题

给你一个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两个属性。其中第 i 个物品的重量为 wt[i],价值为 val[i]。现在让你用这个背包装物品,每个物品只能用一次,在不超过被包容量的前提下,最多能装的价值是多少?例子:算法返回 6,选择前两件物品装进背包,总重量 3 小于 W,可以获得最大价值 6。dp[i][j]的定义:对于前i个物品,背包容量为j时,可以装的最大价值。题目要求的就是dp[N][W].

2024-03-31 17:32:55 1007

原创 leetcode刷题记录:二叉搜索树

定义。

2024-03-30 11:37:02 166 1

原创 leetcode刷题记录:暴力搜索算法01 - 回溯

暴力搜索算法:回溯、dfs、bfs。这些都可以看做是从二叉树算法衍生出来的。解决一个回溯问题,实际上是在遍历一颗决策树的过程。树的每个叶子结点上存着一个答案。把整棵树遍历一遍,把叶子结点上的答案都收集起来,就能得到所有的合法答案。回溯算法的框架def backtrack(路径,选择列表):if 满足条件:result.add(路径)returnfor 选择 in 选择列表:做选择backtrack(路径, 选择列表)撤销选择核心是for循环里的递归,在递归前做选择,递归后撤销选择。

2024-02-15 23:30:20 868 1

原创 leetcode刷题记录:二叉树04(序列化和反序列化)

序列化篇。

2024-02-15 13:06:20 409 1

原创 leetcode刷题记录:二叉树03(构造二叉树)

参考:https://labuladong.online/algo/data-structure/binary-tree-part2/构造问题一般都是通过分解的思路,构造整棵树 = 根节点 + 构造左子树 + 构造右子树。

2024-02-14 22:08:12 435 2

原创 leetcode刷题记录:二叉树02(思路篇)

参考labuladong的算法小抄:https://labuladong.online/algo/data-structure/binary-tree-part1/复习二叉树纲领篇,二叉树解题的思维模式分两类:1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值,这叫「分解问题」的思维模式。

2024-02-14 18:53:56 907 1

原创 leetcode刷题记录:二叉树1(纲领篇)

摘自labuladong的算法小抄:https://labuladong.online/algo/essential-technique/binary-tree-summary-2/

2024-02-14 18:16:22 599 1

原创 leetcode刷题记录: 二分查找

这道题是需要我们寻找target的左侧边界和右侧边界。最直观的解法,写两个函数lowerBound和upperBounder, 分别计算。""""""return -1else:return -1return -1else:return -1但是这种写法比较冗余,可以只写一个lowerBound. 返回参数只返回left,不判断其他情况。如果target在nums中存在,则返回target下界的index;

2024-02-13 18:53:27 618 1

原创 leetcode刷题记录:动态规划02,子序列问题

参考labuladong的算法小抄整理子序列问题,用一维dp数组或二维dp数组来解决。二维dp 数组的定义在子数组 arr1[0…i] 和子数组 arr2[0…j] 中,我们要求的子序列长度为 dp[i][j]。在子数组 array[i…j] 中,我们要求的子序列的长度为 dp[i][j]

2024-02-13 10:55:18 1026 1

原创 2024 算法工程师求职面经杂谈

本人硕4.5算法工程师,某大厂业务算法部门大头兵一枚。目前自身职业上升空间不大,趁着2024春节前后看看机会。这里记录一些自己的面经,供参考。

2024-02-03 18:42:14 359 1

原创 leetcode刷题记录:动态规划01,斐波那契数列和凑零钱问题

动态规划题目的一般形式:求最值。dp三要素:重叠子问题,最优子结构,状态转移方程。

2024-02-03 17:37:21 586 1

原创 leetcode刷题记录 1.3 nSum问题

解法:哈希表,时间和空间复杂度都是O(n)变体:如果不是返回idx,而是返回元素值,可以排序+双指针,O(nlogn)

2024-02-03 16:26:04 112 1

原创 leetcode刷题记录 1.2 数组

左右指针:相向而行快慢指针:同向而行(单链表大部分是这种)

2024-01-17 23:14:51 321

原创 leetcode刷题记录 1.1 链表

双指针,跑完A后,再跑B。如果有交点,两个指针最终会落在交点上;如果没有交点,两个指针都是NULL. 思路是逻辑上让2个指针走同样的距离,消除长短差。代码实现的时候,注意循环条件是while(p1!这种写法可以覆盖到不相交的的情况。要用到优先队列,有点难。找出环形链表的起始结点。快慢指针,没啥好说的。快慢指针,没啥好说的。

2024-01-15 23:49:33 930

原创 推荐系统评价指标:AUC和GAUC

AUC是推荐系统中最常用的模型评价指标。基础概念要常看常新,最近复习了一遍AUC的概念,在此做个笔记。本文力求简洁系统地理解AUC的概念和计算方法,AUC在推荐/广告领域的局限性以及解决这一问题的另一个指标:Group AUC(GAUC)1. 分类任务与混淆矩阵认识auc的第一步,是看懂混淆矩阵:预测\真实101TPFP0FNTNTrue/Fals...

2020-01-21 21:24:08 2535

原创 BST: Behavior Sequence Transformer中的self attention过程详解

文章地址:Behavior Sequence Transformer for E-commerce Recommendation in Alibaba1. BST网络简介1.1 核心思想:WDL 和 DIN没有考虑序列间的相互依赖关系,本论文使用了NTM中transformer层的方法,来捕捉这种关系。1.2 输入特征输入特征有两部分:用户序列特征和其他特征(user, item, co...

2019-12-25 22:11:03 513

原创 DIN(Deep Interest Network):核心思想+源码阅读注释

论文地址: https://arxiv.org/abs/1706.06978DIN是近年来较为有代表性的一篇广告推荐CTR预估的文章,其中使用的attention机制也为使用序列特征提供了新的思路。本文分析了DIN的核心思想。鉴于DIN源代码的变量命名过于随意,难以理解,这里也提供了部分源代码的注释,仅供参考。论文分析核心思想:用户的兴趣是多元化的(diversity),并且对于特定...

2019-12-14 18:43:47 1404 1

原创 关于Embedding 操作的理解

1. 什么是embeddingembedding的本质是用一个较低维度的向量来代替较高维度的原始特征。在推荐系统中,原始向量往往会用超高维的稀疏one-hot向量来表示,使用embedding可以用较低的维度(即embedding size)来表示高维稀疏的特征,方便进行后续的模型训练。2. 如何实现如图所示,embedding的操作可以视为一个全连接层,​u\boldsymbol uu是...

2019-12-14 18:23:33 4754

原创 2019字节跳动春招题目

2019字节跳动算法岗春招,共四道编程题,没有选择题。笔试的时候只做出来了前两道,这里参考了大佬 Azhao1993 的解题思路, 把后两道的解法整理一下。Q3 编程比赛现在有n人参加编程比赛,比赛结束后每个人都得到一个分数。现在所有人铺成一圈(第1个和第n个相邻)领取奖品,要求:1.如果某个人的分数比左右的人高,那么奖品数量也要比左右的人多;2.每个人至少得到一个奖品。输入描述:第一...

2019-11-17 21:05:41 386

原创 Leetcode解题集合(Python3)

之前在github, 简书上写更新,现在搬到CSDN上。话不多说,直接上题目16 3Sum ClosestGiven an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of th...

2019-11-17 20:55:56 419 1

原创 强化学习笔记

强化学习笔记 - 简介本文是根据 Sutton的经典书籍 « Reinforcement Learning: An Introduction » 前三章内容整理的笔记。【枯燥预警】本文侧重对强化学习概念的理论分析,在基本概念上的剖析较为详细,也就是说会比较无聊 LOL1. 强化学习的概念1.强化学习的概念强化学习(reinforcement learning)研究的基本问题是,一...

2019-11-17 20:46:44 1101

空空如也

空空如也

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

TA关注的人

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