山顶夕景_社区达人页

个人头像照片
山顶夕景
已加入开发者社区906

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
初入江湖
初入江湖

成就

已发布593篇文章
4条评论
已回答0个问题
0条评论
已发布0个视频
github地址

技术能力

兴趣领域
擅长领域
技术认证

暂时未有相关云产品技术能力~

CSDN博客专家,华为云云享专家,阿里云专家博主,51CTO专家博主,现为推荐算法工程师,研究领域为AI推荐算法、NLP、图神经网络等,发表EI会议论文一篇,CSDN博客访问量破100万。 CSDN博客id:山顶夕景 微信公众号:古道西风瘦码 知识星球:AI算法乐园

暂无精选文章
暂无更多信息

2022年04月

  • 04.28 16:40:58
    发表了文章 2022-04-28 16:40:58

    ToC和ToB有啥区别

    ToC(Consumer)面向普通用户服务,ToB(business)是面向企业用户服务。对公司的营销体系和商业模式而言,定位客户群体,决定产品设计、运营管理、市场营销等系列操作。 1.1 业务形态不同
  • 04.28 16:40:20
    发表了文章 2022-04-28 16:40:20

    机器人操作系统ROS浅析

    ROS是Robot Operating System的缩写,原本是斯坦福大学的一个机器人项目,后来由Willow Garage公司发展,目前由OSRF(Open Source Robotics Foundation, Inc)公司维护的开源项目
  • 04.28 16:38:26
    发表了文章 2022-04-28 16:38:26

    【LeetCode108】将有序数组转换为二叉搜索树(中序遍历)

    给定的升序数组,其实就是BST的中序遍历数组,只是给定一棵二叉树的中序遍历数组,并不能确定一棵二叉树,但是题目要求是严格平衡的二叉搜索树,所以可以选择升序序列的中间元素作为当前的根结点元素。
  • 04.28 16:37:07
    发表了文章 2022-04-28 16:37:07

    【C++设计模式】建造者模式

    建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。如建房子的过程有打地基、筑墙、安装门窗等,但是可以按照用户的不同需求进行建造不同风格的房子。
  • 04.28 16:35:24
    发表了文章 2022-04-28 16:35:24

    【LeetCode168】Excel表列名称(从1开始的进制转换)

    一般的进制转换题目,只需要对num进行%运算,取得最后一位,然后对num进行/运算(将已经取到的位数去掉),循环直到num为0。一般的进制转换题目都是x在[0, x),即从0开始,满x进一。但是这题是从1开始,所以在进制转换操作前,需要对num进行减1操作,整体偏移,事实上如果漏了减1:
  • 04.28 16:34:14
    发表了文章 2022-04-28 16:34:14

    【Leetcode680】验证回文字符串 II(贪心算法)

    审题看清楚,,题目问的不是回文子串,不是子串!!! 暴力解法会超时,可以使用双指针:
  • 04.28 16:33:26
    发表了文章 2022-04-28 16:33:26

    为什么需要推荐系统

    流量特点: 稀缺性:获取流量是有成本的,流量成本:
  • 04.28 16:32:43
    发表了文章 2022-04-28 16:32:43

    【C++设计模式】抽象工厂模式

    抽象工厂模式,其抽象程度更高,每一个具体工厂可以生产一组相关的具体产品对象。 抽象工厂模式的定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
  • 04.28 16:29:37
    发表了文章 2022-04-28 16:29:37

    【LeetCode844】比较含退格的字符串(双栈or双指针)

    如果不考虑用O ( 1 ) O(1)O(1)的空间复杂度,很容易想到这种添加,删除的步骤,可以用到栈的入栈和出栈,所以可以用2个栈模拟2条字符串的退格运算:
  • 04.28 16:27:58
    发表了文章 2022-04-28 16:27:58

    【微信WXG面试】C++后端开发

    当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,
  • 04.28 16:20:01
    发表了文章 2022-04-28 16:20:01

    【LeetCode82】删除排序链表中的重复元素 II

    1)使用哨兵节点,省去首个元素的逻辑判断,最后返回dummy->next。 (2)比较cur.next与cur.next.next对应的元素是否相同。
  • 04.28 16:19:01
    发表了文章 2022-04-28 16:19:01

    【C++设计模式】工厂方法模式

    之前的简单工厂模式的最大问题:违背“开闭”原则,每当增加新的产品时,需要修改工厂类的逻辑。工厂方法模式不再使用工厂类统一创建所有的具体产品,而是让每个工厂只生产特定的产品。即让一个类的实例化延迟到其子类。
  • 04.28 16:15:09
    发表了文章 2022-04-28 16:15:09

    【推荐算法】某小厂C面试题

    MongoDB中的用户画像,来自mysql中的用户注册表和用户日志数据(如阅读量、点赞数、收藏数等)。 用户画像和物品画像,物料存入MongoDB中的SinaNews数据库中;这里我们用MongoDB是因为其文档类似于JSON对象,增删字段非常方便。
  • 04.28 11:41:21
    发表了文章 2022-04-28 11:41:21

    【Python可视化】绘制学生成绩的雷达图

    【Python可视化】绘制学生成绩的雷达图 雷达图,又叫蜘蛛网图、极坐标图。 雷达图相当于平行坐标图,其中轴径向排列。
  • 04.28 11:40:39
    发表了文章 2022-04-28 11:40:39

    【设计模式】UML类图关系与符号

    UML-Unified Model Language 统一建模语言,是在开发阶段,说明、可视化、构建和书写一个面向对象软件的开放方法。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。
  • 04.28 11:38:03
    发表了文章 2022-04-28 11:38:03

    【算法岗面试】某小厂V面试题

    知识蒸馏(Knowledge Distillation,KD)是常用的知识迁移方法,通常由教师(Teacher)模型和学生(student)模型构成。知识蒸馏就像老师教学生的过程,将知识从教师模型传递给学生模型,使得学生模型尽量与教师模型接近。
  • 04.28 11:35:33
    发表了文章 2022-04-28 11:35:33

    【C++设计模式】简单工厂模式

    创建型模式描述如何将对象的创建和使用分离,让用户在使用对象过程中无须关心对象的创建细节,从而降低系统耦合度,并且让系统易于修改和扩展。
  • 04.28 11:33:36
    发表了文章 2022-04-28 11:33:36

    【阿里面试】C++多态和虚函数

    2.1 现在假设有一个编译好的C++程序,编译没有错误,但是运行时报错,报错如下:你正在调用一个纯虚函数(Pure virtual function call error),请问导致这个错误的原因可能是什么?
  • 04.28 11:31:43
    发表了文章 2022-04-28 11:31:43

    【LeetCode16】最接近的三数之和(双指针)

    和leetcode15三数之和类似,三层循环时间复杂度O ( n 3 ) O(n^3)O(n 3 )过高,使用双指针虽说不能马上降到O ( n ) O(n)O(n),但就是这类题的常用套路: 遍历一遍数组元素,当前元素为num[i];
  • 04.28 11:18:07
    发表了文章 2022-04-28 11:18:07

    【LeetCode剑指offer58】I.翻转单词顺序(istringstream)

    说明: 无空格字符构成一个单词。
  • 04.28 11:17:18
    发表了文章 2022-04-28 11:17:18

    【C++面试】啥时候必须用初始化列表

    构造函数和其他函数不同,构造函数除了有名字、参数列表和函数体外,还可以有初始化列表,即以冒号开头,后跟一系列以逗号分隔的初始化字段,如下的foo类。
  • 04.28 11:13:05
    发表了文章 2022-04-28 11:13:05

    【LeetCode剑指offer38】字符串的排列(回溯+去重or剪枝)

    【方法一】回溯+set 和全排列题目差不多的【回溯】套路,但是多了去重操作,比如aba的两个a视为相同的字符,即不能出现两个aab在结果vector中,最简单的方法就是在回溯模板上添个unordered_set去重后存入vector<string>中即可,但是这样木有剪枝,时间复杂度稍慢点。
  • 04.28 11:11:00
    发表了文章 2022-04-28 11:11:00

    Visual studio调试的快捷键

    F9:光标到某一行,按F9可以给该行设置断点,或者取消断点; F5:执行程序到第一个断点停下;
  • 04.28 11:08:59
    发表了文章 2022-04-28 11:08:59

    【C++面试必问】static静态成员

    普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象共享。 sizeof运算符不会计算静态成员变量的大小,如下的sizeof(CTest)为4:
  • 04.28 11:06:49
    发表了文章 2022-04-28 11:06:49

    【C++面试】虚函数和纯虚函数

    因为写代码时不能在一开始就确定被调用的是基类的函数,还是哪个派生类的成员函数,所以C++通过虚函数实现多态,即在基类中用virtual声明,父类可以引用子类对象(如Human* phuman1 = new Men;父类类型指针phuman指向子类对象),子类成员函数可以重写父类方法(函数)。
  • 04.28 11:04:04
    发表了文章 2022-04-28 11:04:04

    【LeetCode剑指offer49】丑数(小顶堆或DP)

    方法一:小顶堆 求前k大经常用到优先级队列,小顶堆,循环将符合要求的丑数加入小顶堆,取k次堆顶元素即可让堆顶为第k个丑数。而逐个加入丑数即加入2 x 2x2x、3 x 3x3x、5 x 5x5x进入集合(去重)即可。注意这里加入小顶堆的元素不能是int类型,否则会报错overflow(因为next = temp * factor后可能会越界):
  • 04.28 11:02:09
    发表了文章 2022-04-28 11:02:09

    【LeetCode343】剪绳子(动态规划)

    (1)确定状态 dp[i]是将正整数i拆成2个及其以上的正整数后,求所有数的乘积值。
  • 04.28 11:00:50
    发表了文章 2022-04-28 11:00:50

    【LeetCode剑指offer46】把数字翻译成字符串(动态规划)

    字母只有26个英文字母,数字上不超过2位数,本题本质上就是青蛙跳阶梯类型(数字可以是一位,或者两位),只不过需要赋值前进行判断。 (1)确定
  • 04.28 10:57:23
    发表了文章 2022-04-28 10:57:23

    【LeetCode584】寻找用户推荐人(IS NULL)

    题,都能想到referee_id <> 2条件就行,但是会过不了测试用例,这个查询只会返回一个结果:Zach。MySQL 使用三值逻辑 —— TRUE, FALSE 和 UNKNOWN
  • 04.28 10:56:02
    发表了文章 2022-04-28 10:56:02

    【LeetCode1262】 可被三整除的最大和(动态规划)

    要从给出的数组中,找到一小坨数满足和能被3整除。dp[i][*]表示在num[i]中,被3整除后的余数为*的最大数(和)。 2.1 确定状态
  • 04.28 10:54:18
    发表了文章 2022-04-28 10:54:18

    【LeetCode13】罗马数字转整数(简单模拟+哈希)

    简单题,读懂题意。如果右边的数比当前的数大,则当前数需要加个负号,如IV是5-1=4;如果右边的数比当前的数字小,则都是加法(注意最后一个数也是用加法的)。 三、代码
  • 04.28 10:52:59
    发表了文章 2022-04-28 10:52:59

    【LeetCode677】键值映射

    方法一: 暴力扫描。对哈希表进行增删查改,就是注意找到prefix开头的键key的操作就行。
  • 04.28 10:52:04
    发表了文章 2022-04-28 10:52:04

    【LeetCode5】最大回文子串(中心扩散法)

    中心扩散法。 从每个节点开始,当前结点向两边扩散来判断回文串,因为回文串长度可能是奇数或者偶数,即后者就木有一个中心字符,伪代码应该如下:
  • 04.28 10:51:09
    发表了文章 2022-04-28 10:51:09

    【LeetCode125、557】验证回文串、反转字符串中的单词III

    简单题,处理后反转字符串,判断和原字符串是否相同。isalnum判断是否为字母或者数字,如果不知道api就写判断条件;tolower是将char字符转为小写字母。 三、代码
  • 04.28 10:49:34
    发表了文章 2022-04-28 10:49:34

    【LeetCode705】设计哈希集合(哈希)

    0 <= key <= 10^6 最多调用 104 次 add、remove 和 contains 二、思路
  • 04.28 10:48:37
    发表了文章 2022-04-28 10:48:37

    【LeetCode451】根据字符出现频率排序(优先队列)

    【LeetCode451】根据字符出现频率排序(优先队列) (1)根据词频排序,很容易想到用哈希表统计每个字符的个数,然后排序。对于“求前k个”或“排序”的题目可以使用堆排序,用优先级队列实现最大堆,进行堆排序,堆顶即当前的最大值。因为我们的pair<char, int>的second才是对应字符(first)的词频,需要的是对second进行排序,所以重写cmp。
  • 04.28 10:47:32
    发表了文章 2022-04-28 10:47:32

    【LeetCode542】01矩阵(BFS)

    (1)其实和上一题(【LeetCode286】墙与门(BFS))非常相似,这题的0就相当于286题的门,但是本题是可能存在多个门“堆”在一起(多个0)的情况,首先将0加入队列,从每个0开始一圈圈向1用BFS扩散,可以设置二维数组dis记录距离,和用vis二维数组表示是否遍历过的flag。
  • 04.28 10:46:42
    发表了文章 2022-04-28 10:46:42

    【LeetCode剑指offer13】机器人的运动范围(BFS)

    (1)求数位之和就while循环,每次循环求余; (2)bfs或者dfs都可以,如果用bfs则用到队列,遍历时为了防止重复遍历和遇到不合法的格子,在push入队列之前进行判断。
  • 04.28 10:45:50
    发表了文章 2022-04-28 10:45:50

    【LeetCode286】墙与门(BFS)

    -1 表示墙或是障碍物 0 表示一扇门
  • 04.28 10:37:10
    发表了文章 2022-04-28 10:37:10

    【LeetCode752】打开转盘锁(BFS)

    【LeetCode752】打开转盘锁(BFS) 每个节点有8个孩子节点,如题目给的第二个测试用例,start=0000时,4个位置分别可以向上转or向下转,得到1000、9000、0100、0900等8种情况。即这是一棵八叉树。即求解从start数字到target的最短路径。为了找到最小旋转次次数,利用BFS逐层查找,遇到target则返回树高度(层数)。
  • 04.28 10:35:35
    发表了文章 2022-04-28 10:35:35

    【LeetCode225】用2个队列实现栈(辅助队列)

    队列特点:先进先出; 栈特点:先进后出。 题目给出2个队列,为了让队列实现栈的“先进后出”:
  • 04.28 10:34:31
    发表了文章 2022-04-28 10:34:31

    【LeetCode346】数据流中的移动平均值

    给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算其所有整数的移动平均值。 示例:
  • 04.28 10:33:34
    发表了文章 2022-04-28 10:33:34

    【LeetCode622】设计循环队列

    使用动态数组以便在运行阶段创建需要大小的数组 循环队列的实现关键在于isFull()和isEmpty()的实现(可以有不同的初始化和方法)。
  • 04.28 10:28:07
    发表了文章 2022-04-28 10:28:07

    【C++】动态数组

    那啥时候我们需要定义动态数组呢?
  • 04.28 10:24:53
    发表了文章 2022-04-28 10:24:53

    【LeetCode316】去除重复字母(单调栈+哈希)

    先读懂题意,删除重复的字母,得到最小的字符串。如babc,删除重复字母有两种结果bac,abc。abc小于bac,所以答案是abc。 遇到一个新字符 如果比栈顶小 并且在新字符后面还有和栈顶一样的 就把栈顶的字符抛弃了。
  • 04.28 10:23:44
    发表了文章 2022-04-28 10:23:44

    【LeetCode496】下一个更大元素 I(单调栈)

    单调栈模板如下,首先下面版本的前提条件(可灵活改动)是找出nums数组中每个元素,对应的右边的第一个更大的元素值。我们利用一个辅助栈stack,从nums数组的最右边开始倒着遍历:
  • 04.28 10:21:50
    发表了文章 2022-04-28 10:21:50

    【LeetCode1254】统计封闭岛屿的数目(dfs)

    和 【LeetCode200】岛屿数量(求连通分量个数) 的区别是: (1)1和0对应 水域和陆地,刚好和之前相反;
  • 04.28 10:19:35
    发表了文章 2022-04-28 10:19:35

    【LeetCode1020】飞地的数量

    从4条边界进行遍历,即遇到边界上的1就递归遍历,把边界上的都为1的连通分量改成数字2,dfs搞完后,就遍历一遍二维数组,剩下的1即所求的飞地数量。
  • 04.28 10:17:41
    发表了文章 2022-04-28 10:17:41

    【LeetCode417】太平洋大西洋水流问题

    (1)找出从太平洋出发的水所能到达的点:
  • 04.28 10:16:09
    发表了文章 2022-04-28 10:16:09

    解决报错:AddressSanitizer: heap-buffer-overflow

    leetcode使用AddressSanitizer检查内存是否存在非法访问。报此错,主要是访问了非法内容。 解决方法:数组访问越界,导致此错,后来发现是在访问二维数组的边界row和col弄反了。。
  • 发表了文章 2022-04-28

    【推荐算法课程】CS246 大数据挖掘

  • 发表了文章 2022-04-28

    年轻人创业最关心的13个问题

  • 发表了文章 2022-04-28

    【AI基础】AUC/ROC指标

  • 发表了文章 2022-04-28

    【LeetCode剑指offer65】不用加减乘除做加法(位运算)

  • 发表了文章 2022-04-28

    【LeetCode168】Excel表列名称(从1开始的进制转换)

  • 发表了文章 2022-04-28

    【LeetCode剑指offer】二叉搜索树的最近公共祖先(迭代or递归)

  • 发表了文章 2022-04-28

    【LeetCode24】两两交换链表中的节点(递归)

  • 发表了文章 2022-04-28

    【LeetCode剑指offer12】矩阵中的路径(dfs回溯)

  • 发表了文章 2022-04-28

    【LeetCode剑指offer47】礼物的最大价值(简单dp)

  • 发表了文章 2022-04-28

    【kaggle】特征工程 trick

  • 发表了文章 2022-04-28

    【Spark】(task4)SparkML基础(数据编码)

  • 发表了文章 2022-04-28

    【LeetCode剑指offer34】二叉树中和为某一值的路径(dfs回溯)

  • 发表了文章 2022-04-28

    【Pytorch基础教程27】DeepFM推荐算法

  • 发表了文章 2022-04-28

    【LeetCode163】缺失的区间(to_string)

  • 发表了文章 2022-04-28

    【LeetCode剑指offer57 II】和为s的连续正数序列(用vector模拟滑动窗口)

  • 发表了文章 2022-04-28

    【Airflow】工作流自动化和调度系统

  • 发表了文章 2022-04-28

    【LeetCode剑指offer26】树的子结构(递归)

  • 发表了文章 2022-04-28

    【PyTorch基础教程23】可视化网络和训练过程

  • 发表了文章 2022-04-28

    【AI基础】bias和variance的奇妙关系

  • 发表了文章 2022-04-28

    【LeetCode剑指offer04】二维数组中的查找(简单数学)

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息