自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 机器学习、数据挖掘-推荐系统问题总结

参考各种资料总结一下,准备面试。更新中~1、过拟合与欠拟合过拟合:在训练数据集上表现较好,在测试集上表现较差。可能的原因:参数太多,模型复杂度高。 样本噪声数据较大,模型学到了噪声数据的特征。 对于决策树模型,对于决策树的生长没有进行合理的限制和修剪。 对于神经网络,迭代次数太多(overtraining),拟合数据中的噪声和无代表性的特征。解决方法:降低模型复杂度,使...

2020-03-26 15:59:43 604

原创 位运算系列(&, |, ^)

1、136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1思路: 异或操作^的性质: a^a = 0, 0^a = a, 对所有元素进行异或的结果就是只出现一次的元素,其它元素两两抵消。class Solution {public: int singleNumber(vector&

2020-10-15 20:54:19 327

原创 数组原地排序系列-leetcode消失的两个数字,数组中重复的数据,缺失的第一个正数

数组原地排序适用场景:数组nums中元素范围固定,为1~n思路:将每个元素换到对应位置上,即nums[i]=i,实际上下标从0开始,数值从1开始,所以应该处理为nums[i]=i+1。当然,如果数组元素范围也是0~n-1,那就直接令nums[i]=i成立即可。具体地要依据题目决定。1、面试题 17.19. 消失的两个数字给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?以任意顺序返回这两个数字均可。示例 1:

2020-10-15 17:53:35 392

原创 leetcode快速幂

1、实现pow(x, n),即计算 x 的 n 次幂函数。代码class Solution {public: double myPow(double x, int n) { long long m = n; double ans = 1.0; int sign = 1; if (n<0) sign = -1; m = abs(m); while (m)..

2020-10-15 11:39:30 204

原创 Leetcode最小移动次数使数组元素相等

给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]刚看完题目毫无头绪,哎我去,这竟然是easy程度的题,瞬间怀疑人生。看了官方题解,觉得数学法真是太奇妙了,必须mark一波。class Solution {...

2020-09-16 14:37:08 119

原创 编程题-链表与双指针

总结:链表相关的题目大部分可以用双指针解决。i.e.,找链表倒数第k个节点,找链表中间1/2节点。快慢指针1、找链表中倒数第k个节点[1]输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。/*双指针1)p1比p2先行k-1步,当p1到达最后一个节点,p2指向倒数第k个节点2)p1比p2先行k步,当p1到达.

2020-08-12 15:05:19 177

原创 摩尔投票算法-leetcode数组出现次数超过一半和1/3的元素。

1、剑指 Offer 39. 数组中出现次数超过一半的数字[1]数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。摩尔投票算法是基于这个事实:每次从序列里选择两个不相同的数字删除掉(抵消),最后剩下一个数字或几个相同的数字,就是出现次数大于总数一半的那个。目标:不断删除2个不同数字,直到无法删除。对实现过程的理解:假设我们有2个隐形数组, array, result分别表示当前无法删除的元素和删除之后剩下的元素。例:

2020-07-05 16:16:31 597

原创 二叉树bfs/dfs-199二叉树的右视图

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。在二叉树问题中,递归dfs是很常用的方法,本题同样适用。dfs:分别考虑左右子树的右视图,若左子树的右视图的高度>右子树的右视图高度,则右视图为右子树的右视图+左子树剩余的右视图若左子树的右视图的高度>右子树的右视图高度,则右视图为右子树的右视图代码(c++)vector <int> res; if (root...

2020-07-02 07:54:02 160

原创 树形DP系列-leetcode124. 二叉树中的最大路径和,leetcode543.二叉树的直径

给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。看到这题一开始整体的思路还是递归,对左右子树分别递归处理。如果dfs(root)表示...

2020-06-30 11:41:33 264

原创 逻辑短路和快速乘-剑指 Offer 64. 求1+2+…+n

求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。注:1 <= n<= 10000思路:如果不考虑条件限制,这道题很简单。可以用递归或者直接公式计算sum=n*(n+1)/2。1、递归: int sumNums(int n) { int sum = 0; if (n>0) sum = n + sumNums(n-1); .

2020-06-21 17:27:04 129

原创 二分法搜索行列有序矩阵系列

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素.示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。提示:你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。因为是有序数组查找,首先想到的就是二分法。首先确定查找范围,low=matrix[0][0],high...

2020-06-20 11:59:13 494

原创 leetcode刷题-相交链表

编写一个程序,找到两个单链表相交的起始节点。思路:考虑两个简单无环的单向链表,若相交,从某个节点之后节点相同,一定呈Y字形相交。方法一、借用栈结构,使用两个栈,分别加入A, B链表的节点;然后对栈遍历,若栈顶元素相等,则一定相交,记录此时的节点,元素出栈,一直到栈顶元素不相等,此时之前记录的节点就是相交节点。代码:/** * Definition for singly-l...

2020-04-23 11:51:15 193

原创 乘法表中第k小的数-二分法

几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗?给定高度m 、宽度n 的一张 m * n的乘法表,以及正整数k,你需要返回表中第k 小的数字。例 1:输入: m = 3, n = 3, k = 5输出: 3解释:乘法表:1 2 32 4 63 6 9第5小的数字是 3 (1, 2, 2...

2020-04-23 10:55:49 588

原创 python知识点理解

1、赋值、浅拷贝和深拷贝对于非容器类型(组合类型),如数字、字符,以及其他的“原子”类型,没有拷贝一说,产生的都是原对象的引用。赋值:对原对象的引用,与原对象指向同一片内存地址。对原对象/子对象的改变都会同步。浅拷贝(仅拷贝1层):创建新的对象,内容为对原对象第一层对象的引用。开辟新的空间,存放原对象第一层每个元素的地址。深拷贝:创建新的对象,递归的拷贝原对象所包含的子对象。深拷贝...

2020-04-22 22:44:13 112

原创 c++知识理解(#define, 堆/栈内存,static, const关键字,引用与指针,多态)

1、宏定义宏定义命令 #define ,1)不带参数的宏定义格式:#define 标识符 字符串,其中标识符即为宏名。作用:在预编译阶段进行宏展开,将宏名替换为定义的字符串。不做语法检查。说明:a.宏名一般大写,末尾无分号 b.宏定义不分配内存,变量定义分配内存 c. 宏定义只对标识符进行替换,不会将包含标识符的字符串进行替换...

2020-04-21 17:21:21 442

原创 leetcode面试题. 最小差

给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差示例:输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8}输出: 3,即数值对(11, 8)提示:1 <= a.length, b.length <= 100000-2147483648 <= a[i], b[i] &lt...

2020-04-21 11:17:46 645

原创 力扣面试题60. n个骰子的点数

把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例 2:输入: 2输出...

2020-04-21 11:11:42 151

原创 分石子-牛客网

题目描述牛牛有n堆石子堆,第i堆一共有ai个石子。牛牛可以对任意一堆石子数量大于1的石子堆进行分裂操作,分裂成两堆新的石子数量都大于等于1的石子堆。现在牛牛需要通过分裂得到m堆石子,他想知道这m堆石子的最小值最大可以是多少?示例1 输入3,5,[3,5,6]输出2说明把5分裂成2和3把6分裂成2和4得到五堆石子[3,2,3,2,4]备注:1≤n...

2020-04-20 10:54:14 716

原创 2020春季实习生面试-字节跳动面试记录

一面首先是五分钟以内的自我介绍。然后介绍自己的研究课题。最后写了两道算法题。1. 给定一个有序数组,查找数组中第一个大于k的值,若找不到,输出-1.思路:因为是有序数组查找,很容易想到二分查找,但是边界条件需要慎重考虑,尤其是循环结束条件low<high还是low<=high, 以及边界low, high加1减1. 我当时边界条件就没考虑好。int searchIns...

2020-04-20 10:12:16 469

原创 2019拼多多笔试题-leetcode754.最终到达的数字

在一根无限长的数轴上,你站在0的位置。终点在target的位置。每次你可以选择向左或向右移动。第 n 次移动(从 1 开始),可以走 n 步。返回到达终点需要的最小移动次数。示例 1:输入: target = 3输出: 2解释:第一次移动,从 0 到 1 。第二次移动,从 1 到 3 。示例 2:输入: target = 2输出: 3解释...

2020-04-08 22:53:45 570

原创 leetcode刷题845.数组中的最长山脉

我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)...

2020-04-08 21:12:08 135

原创 leetcode刷题-圆圈中最后剩下的数字(约瑟夫环问题)

0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2...

2020-04-08 11:15:05 191

原创 百面机器学习第二章模型评估-总结笔记

1、评估指标的局限性1)准确率(Accuracy)的局限性。当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。i.e.,当负样本占99%时,分类器把所有样本都预测为负样本,也可以获得99%的准确率。2)精确率与召回率的权衡。(Precision,Recall) Precision 值和 Recall 值是既矛盾又统一的两个指标,为了提高Prec...

2020-04-07 22:50:11 838

原创 百面机器学习第一章特征工程-总结笔记

持续更新中特征工程1、什么是特征工程?为什么需要特征工程?1)特征工程:对原始数据进行一系列工程处理,将其提炼为特征,作为输入供模型和算法使用。在实际操作中,特征工程旨在去除原始数据中的冗余和噪声,设计更高效特征。i.e. FM中 feature crossing的思想就是代替特征工程设计更好的特征。2)”Garbage in, garbage out”, 数据和特征往往决定了结果的...

2020-04-05 22:20:03 232

原创 leetcode字节跳动算法题-接雨水

思路:对于每个柱子i,雨水所能够达到的最大高度为 i左边最大值和右边最大值二者之中的最小值。只要理解了了这个思路,代码就很容易实现了。在具体实现时,为了避免对每个柱子每次分别向左向右找最大值的过程,首先对数字进行两次遍历,记录最小值和最大值,之后对数组遍历一次计算雨水总量即可。时间复杂度O(n)代码:class Solution {public: int trap(vect...

2020-04-05 19:41:51 778

原创 leetcode刷题 面试题16.16 部分排序

给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。思路:有序元素满足:>=左边元素最大值,<=右边元素最小值。1)只要对数组进行两次遍历,分别记录左边元素(0~i-1)最大值...

2020-04-04 00:16:25 335

原创 leetcode刷题25. K个一组翻转链表

题目描述思路:递归以链表1->2->3->4->5为例,K=21)将链表划分为两个链表,一个包含前K个节点,一个包含剩下的节点,即1->2和3->4->5两个链表。2)对链表1->2进行整体翻转;对链表2-3->4递归进行K个一组翻转。题目来源:https://leetcode-cn.com/problems...

2020-04-02 17:54:48 117

原创 leetcode刷题452.用最少数量的箭引爆气球

在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xen...

2020-04-02 10:26:34 278

原创 leetcode剑指offer:最长不含重复字符的子字符串

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3思路:本题...

2020-03-26 15:32:19 63

原创 梯度下降之BGD、SGD和MBGD总结对比

批梯度下降(BGD, batch gradient descent),计算公式如下,每次梯度下降往样本总体损失函数减少的方向更新.优点:以梯度下降最快的方向收敛。缺点:每次更新参数都要计算全部样本,计算量很大,尤其当样本数量很大的时候。随机梯度下降(SGD, stochastic gradient descent),计算公式如下,按照每个样本损失函数下降最快的方向更新。...

2019-03-13 10:09:05 1014

原创 Sequential Recommender System based on Hierarchical Attention Network论文笔记

一般地,在对user进行推荐时,会综合考虑user general taste(即long-term preference)和recent demand(即short-term preference)两个方面。但是现有工作忽略了一个问题,即user 的long-term preference是随时间变化的,所以为general taste学习一个static representation是不足以反...

2019-02-22 14:56:20 1610

原创 台大李宏毅机器学习2017-where does the error come from

model error的来源包括两部分:bias和variance。1、biasuderfitting,模型太弱。表现:在train data上都不能很好fit数据。解决:重新设计model,可以加入更多的feature/增加模型的复杂度(如:使用feature的3次函数替代线性函数)2、varianceoverfitting,模型过于复杂,容易受数据影响。表现:在tr...

2018-11-28 23:37:09 124

空空如也

空空如也

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

TA关注的人

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