4 余沾

京东商城 - 算法工程师

我要认证

Don't live the same day twice

等级
TA的排名 1w+

解决iterm2使用vim乱码乱行

在~/.vimrc中加入以下代码set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set termencoding=utf-8set encoding=utf-8

2020-04-30 18:10:39

mac iterm2 安装 lrzsz rz sz命令

1. 下载iterm2首先mac自带的终端是不支持lrzsz的,需要下载安装iterm2,下载地址:http://www.iterm2.cn/download2. 按照brew国外:/usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"国...

2020-04-30 15:41:29

2Sum、3Sum、3Sum Closest、4Sum问题

KSum问题是面试中常见的面试题,考察是否能够合理利用排序这个性质, 一步一步得到高效的算法。K sum的求和问题一般是这样子描述的:给你一组N个数字, 然后给你一个常数(比如 int target) ,目标是在这一堆数里面找到K个数字,使得这K个数字的和等于target。2Sum解决方法就是先从小到大排序,分别定义头尾指针,然后利用头尾指针找到两个数使得他们的和等于target。v...

2020-03-24 19:44:57

最长递增子序列

这是百度一面面试题。举例:arr = [2, 1, 5, 3, 6, 4, 8, 9, 7], 返回的最长递增子序列为 [1, 3, 4, 8, 9]。1. 动态规划解法思路如下:构造dp:生成长度为N的数组dp,dp[i]表示在以arr[i]这个数结尾的情况下,arr[0...i]中的最大递增序列长度; 首元素:对第一个数arr[0]来说,令dp[0] = 1,接下来,从左到右...

2020-03-09 09:48:18

工业界常用推荐算法的升级之路

本文将介绍常见推荐算法的升级之路,从最初的LR到业界常用的DIN、DIEN等模型。1. 线性模型1.1 逻辑回归LR简介逻辑回归算法是一种监督学习分类算法,对特征进行线性加权求和,通过Sigmoid函数将结果映射到0-1。模型结构结构风险函数 = 经验风险项+正则项其中损失函数为经验风险项的重要组成部分损失函数:表征模型预测值与真实值的不一致程度。损失函...

2020-03-05 16:48:30

LR损失函数推导

LR的推导LR逻辑回归是一种监督学习分类算法,其实现了给定数据集到0,1的一种映射。给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)},其中(xi,yi)表示第i个样本,其中,xi=(xi1,xi2,...,xin),即每个数据有n个特征,类别y={0,1},要求训练数据,将数据分成两类0或1。假定xi的n个特征为线性关系,即:...

2020-02-17 20:08:58

Xgboost与Gbdt的区别

传统GBDT以CART作为基分类器,CART以gini指数选择特征,gini指数越小,纯度越高。离散特征会依次将每个取值作为分割点计算gini系数,连续特征会依次将连续两个值的中间值作为分割点,均取gini指数最小的作为最优特征与最优切分点。Xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的LR。 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数...

2020-02-17 18:09:32

基于CentOS 搭建gRPC框架

1. 简介RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。gRPC(google RPC)是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本...

2019-11-27 17:10:03

mac iterm2 自动登录服务器

由于mac还不支持xshell,xshell有按钮功能能快速登录服务器,iterm2是mac常用的ssh客户端,下面,介绍如何利用iterm2快速登录服务器。1. 登录远程服务器#!/usr/bin/expectset timeout -1spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]expect {...

2019-11-12 19:51:35

C++设计模式之工厂模式实例

工厂模式工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。简单工厂模式简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。假设有一个工厂,它能生产出A、B两种产品。当客户需要产品的时候一定要告诉工厂是哪种产品,是A还是B。当新增加一种新产品的时候,便需要修改工厂的类。工厂方法模式...

2019-11-05 20:35:36

Visual Studio Code快捷键

通用 Ctrl+Shift+P, F1 打开命令面板 Ctrl+P 快速打开文件 Ctrl+Shift+N 打开新窗口/实例 Ctrl+Shift+W 关闭窗口/实例 基础编辑 Ctrl+X 剪切当前行 Ctrl+C 复制当前行 Alt+ ↑ / ↓ 向上/向下移动当前行 Shift+Alt + ↓ / ↑ 向上/...

2019-07-25 18:58:29

g++ 常用链接参数

Linux上开发C++时,常需要添加第三方依赖,有以下几种常用的参数:1. -l(小写L) 当库文件在/lib、/usr/lib、/usr/local/lib三个目录下时,可直接用-l链接。-l参数后紧跟库名,库名和库文件名的关系如下:以数学库为例,它的库名为m,库文件名为libm.so,把库文件名的头lib和尾.so去掉即为库名。2. -L 当库文件在自定义目录下...

2019-07-07 15:08:41

Linux三剑客之sed实战

基本介绍sed是Linux中一种流编辑器,是文本处理非常有力的工具,支持将数据进行替换、删除、新增、选取等功能。首先将决定选取哪些行进行编辑,规则可以是数字、正则表达式等,若没有限制,则将处理输入文件的所有行。在处理时,将当前行存储在临时缓存区中,称为”模式空间“,然后使用sed指令处理缓冲区的内容,处理成功后,把缓冲区的内容输出到屏幕上。语法格式sed [-nefri] 动作命...

2019-05-26 00:50:28

STL 源码剖析之Vector

1. Vector 概念作为STL中常用的序列式容器,vector的数据安排与操作方式,与array都十分相似,它们唯一的差别是对于空间运用的灵活性。array称为静态数组,一旦初始化则不能改变大小,而vector称为动态数组,随着元素的不断加入,它的内部机制会自行扩充空间。因此,vector的实现技术,关键在于其对空间大小的控制以及重新配置时的数据移动效率。2. Vector 定义为...

2019-05-21 14:37:57

anaconda 安装package提示PackagesNotFoundError

Linux下使用anaconda安装package时,有时候会提示“PackagesNotFoundError: The following packages are not available from current channels”。解决方案如下:第一步:输入 anaconda search -tconda packages第二步:输入anaconda show &lt...

2019-04-26 18:23:37

Linux 三剑客之grep实战

基本介绍grep是Linux中一种强大的文本搜索工具,用于查找文件里符合条件的字符串。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。语法格式grep [-abcEFGhHilLnqrsvVwxy][-A<显示列...

2019-04-22 18:27:04

C/C++程序占用内存说明

一、组成部分1. 栈区(stack):由编译器自动分配释放,存放函数参数值,局部变量的值等,操作类似于数据结构中的栈。栈内存分配内置于处理器的指令集,分配效率高但是内存容量有限,不会产生内存碎片,向着内存地址减小的方向生长;2. 堆区(heap):由程序员自动分配释放 ,若程序员不释放,容易导致内存泄漏,程序结束时可能由OS回收。堆内存分配类似于链表,分配效率低但是内存容量大,频繁的分...

2019-04-15 21:03:49

Linux 三剑客之awk实战

基本介绍awk是Linux开发下常用的一种对文本进行处理的工具,具有十分强大的功能。数据可以来源于标准输入、文件及外部变量,支持用户自定义函数和动态正则表达式等高级功能,且拥有许多内置的功能和函数,是开发中的一件利器。通常,awk是以文件的一行为处理单位的,每接收文件的一行,然后执行相应的命令处理文本。语法格式awk [选项参数] 'script' var=value file(...

2019-04-12 13:10:44

剑指Offer题目汇总(C++版)

最近,鉴于目前网上关于《剑指Offer》C++版的汇总资料特别少或者不规范,特整理了一版书中重要的考题,以备学习使用。目录一、位运算1. 二进制中1的个数2. 二进制中0的个数3. 二进制高位连续0的个数二、二叉树1. 二叉搜索树第k个结点2. 从上往下打印二叉树3. 二叉树打印成多行4. 数据流中位数5. 二叉树中和为某一值的路径6. 重建二叉树...

2019-04-11 18:17:02

C++ 数据结构实战:快速查找

最近线上开发C++时,遇到一个性能问题,业务场景简单描述为: 给定m个商品ID, 4个特征(特征数量可增可减),已知商品对应的每个特征的值,如何快速获取某个商品的某个特征值?当时我采取的是stl嵌套的数据结构,由于时间复杂度较高,且vector的值是随着map的rehash阶段不断进行内存拷贝的, 在全量计算特征的时候会给性能造成很大的压力,当时与base的性能对比如下:性能不...

2019-03-27 17:36:03

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。