自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CongliYin的博客

达则兼济天下,穷则独善其身。

  • 博客(272)
  • 收藏
  • 关注

原创 支持向量机(SVM)入门理解与推导

一、简介支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;当训练样本线性不可分时,通过核技巧和软间隔...

2018-03-28 17:03:05 182059 48

原创 Leetcode#1137:第N个泰波那契数

题目描述泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。题解 python3class Solution: def tribonacci(self, n: int) -> int: # 空间复杂度 O(n) # res = [0,1,1] # for i in range(2,

2021-11-11 23:07:23 466 1

原创 Leetcode#509:

题目描述斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。题解 python3class Solution: def fib(self, n: int) -> int: #动态规划 O(n)空间复杂度 res = [0,1] for i in range(2, n+1): res.append(res[i-1] + res[i-2])

2021-11-11 22:43:17 437

原创 Leetcode#34:在排序数组中查找元素的第一个和最后一个位置

题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?题解 python3# 复杂度O(log n)的方法,用二分无疑了# 两次二分,第一次查找最左等于target的下标,第二次查找第一个大于target的下标,为了方便,增加flag参数区分是第一次还是第二次class Solution:

2021-11-10 22:49:01 206

原创 Leetcode#33: 搜索旋转排序数组

题目描述整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个

2021-11-10 22:45:45 104

原创 Leetcode#74: 搜索二维矩阵

题目描述编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。题解 python3class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: # 从右上角开始查找,大于则行+1,小于则列-1 m = len(matrix)

2021-11-10 22:43:53 69

原创 Leetcode#495:提莫攻击

题目描述在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 tim

2021-11-10 21:07:58 87

原创 NLP系列:Transformer详解

目录前言Transformer的结构位置编码单向掩码前言Transformer的结构位置编码单向掩码

2021-10-24 21:50:45 128

原创 NLP系列:attention和self-attention

一、背景介绍二、attention三、self-attention四、总结

2021-10-23 22:55:03 625

原创 Leetcode#725. 分割链表

# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def splitListToParts(self, head: ListNode, k: int) -> List[ListNode]: leng

2021-10-04 18:56:15 93

原创 MATLAB在三维图形上绘制标记点

一、背景在实际应用绘制图形时,需要在三维模型上标记出来某些点,甚至还要绘制这些点之间的对应关系(使用直线连接),现将几种不同的绘制方法总结如下。二、标记点1、标记扁平点% x,y,z是要标记的点的坐标% r.表示颜色% 'markersize',30是点的大小plot3(x,y,z,'r.','markersize',30)2、标记球形点% d是球面经纬度细分网格的数量% s...

2019-02-25 18:44:41 28165

原创 matlab2012b安装教程

下载安装包解压后双击setup.exe进行安装选择不使用internet进行安装在 xx:\matlab\Matlab-R2012b路径下新建 license 文件夹,然后新建 license.lic文件,内容如下:%%%%%%%%%%%%%%%%%%%%%%%%%%%%INCREMENT Aerospace_Blockset MLM 99 permanent uncounted \...

2018-11-14 11:57:13 5502 4

原创 面经总结(校招篇)

  校招是个很费心力的过程,今年的算法岗竞争激烈,我虽然有2短实习经历,校招依然被大佬们挤得无处可逃,校招提前批一般是免笔试的,所以我投递了很多家,但最终只拿到了美团的算法岗offer,另外在滴滴也幸运的实习转正了,所以正式秋招基本就没有参与了。  校招面试面了5家,拿到了1家的offer,以下是面经。作业帮:2018.08.08上午10点半至11点半1、介绍实习,第一个项目2、手写代码:...

2018-11-05 16:17:31 1201

原创 面经总结(实习篇)

  校招告一段落,将这一年多来的面试经历做一总结。在求职过程中,我还算幸运的,也可能是自己比较懒,所以面试的公司比较少,本篇先总结实习的求职经历。  其实在研一下学期还比较迷茫,没想清楚自己毕业到底要去做什么,互联网?国企?银行?读博?有很多选择,也想过很多。后来想,不管以后做什么,计算机专业的基本功还是要打牢,于是开始刷题、学C++基础知识;学了一段时间,听了一些师兄师姐的求职分享会,又想不论...

2018-11-05 15:54:33 1424 2

原创 K近邻法(k-nearest neighbor, KNN)

K近邻法(k-nearest neighbor, KNN)是一种基本分类和回归算法。对于分类问题,其输入为样本的特征向量,输出为样本的类别,可以是多类别;对于回归问题,输出是一个实值。分类时,对于新的无label实例,根据其 k 个最近邻的训练实例的类别,通过多数表决等方式进行预测。k 值的选择、距离度量以及分类决策规则是 k 近邻法的三要素。一、距离度量常用的距离有:欧氏距离:L2(xi,...

2018-10-31 11:02:04 413

原创 逻辑回归(Logistic Regression)入门理解与推导

逻辑回归(LR)是一个分类算法,它可以处理二元分类问题和多元分类问题。在介绍LR之前,先回顾一下线性回归(Liner Regression)。一、线性回归线性回归是一个回归模型,给定数据集 D={(x1,y1),(x2,y2),...,(xm,ym)}D = \{ ({x_1},{y_1}),({x_2},{y_2}),...,({x_m},{y_m})\}D={(x1​,y1​),(x2​,...

2018-10-30 11:46:33 965

原创 CSDN插入公式

写博客时,常常有一些公式需要编辑,CSDN提供和Latex一致的公式编辑方法,有一种非常简单的方法插入公式,如下:使用MathType编辑公式,以MathML方式复制出来,具体设置在MathType菜单栏的预置中;删除复制内容前后的 [ ,然后前后加 $ 符号,即可如下公式:$\mathop {\min }\limits_{x \in {R^n}} {\rm{ }}f(x)$效果:...

2018-10-29 18:02:46 1012

原创 CSDN图片的居中与缩放

使用CSDN插入图片时,往往需要对图片居中和缩放,以下是一个例子:原始插入图片代码:![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029173714777.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4...

2018-10-29 17:40:13 1679

原创 梯度下降(Gradient Descent)

在求解机器学习模型参数时,即对问题进行优化时,梯度下降是最最常用的方法之一,下面对梯度下降做一个总结。一、梯度在微积分中,对多元函数的变量求偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度,比如函数 f(x,y),分别对 x, y 求偏导,得:那么这个梯度组成的向量有什么用呢?从几何意义上讲,就是函数变化增长最快的方向,或者说沿着梯度向量的方向,函数会更快找到最大值,反过来,沿...

2018-10-23 21:39:38 378

转载 Mac OS下安装Photoshop CC 2017破解版

见链接:https://www.jianshu.com/p/ed2defaf9301

2018-10-13 15:59:38 4170

原创 LeetCode #235. 二叉搜索树的最近公共祖先

题目描述:给定二叉搜索树及两个节点,求这两个节点的最近公共祖先解题思路:两个节点分别在左右子树,公共祖先是根节点;两个节点都在左子树;两个节点都在右子树;class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { ...

2018-09-14 18:14:40 1994 1

原创 二维数组查找某个数出现的次数

int solution(vector&lt;vector&lt;int&gt;&gt; A, int target){ if(A.size() == 0) return 0; int cols = A[0].size(); int rows = A.size(); int count = 0; int x = 0; int y ...

2018-09-14 17:30:33 2287

原创 买n个苹果,一袋6个或者8个,求袋数最少时刚好买够n个?

题目描述:小易去买苹果,有两种包装,一种一袋8个,一种一袋6个,小易要买n个苹果(不能多也不能少),输出袋子最少的购买方案下的袋子,若无法正好买到n个,则输出-1。解题思路:如果要使袋子数最少,那么一定是尽量买8袋的,如果8袋不满足条件,逐步减少袋数,看6袋是否满足;int solution(int n){ int pack8 = n / 8; int pack6...

2018-09-14 15:28:21 1509

原创 Leetcode#142. 环形链表 II

题目描述:如果链表有环,返回环的入口;如果没有环,返回NULL;解题思路:之前有一题是判断链表是否有环,使用快慢指针实现;对于此题,在链表有环且快慢指针第一次相遇时,将慢指针指向链表头,快指针不变,然后两者一起前进(都是一步),知道再次相遇,就是环的入口;/** * Definition for singly-linked list. * struct ListNode {...

2018-09-05 21:57:24 521

原创 蓄水池问题

题目描述: 给出一个数据流,这个数据流的长度很大或者未知,并且对该数据流中数据只能访问一次。请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等。 或者也可以这么说: 要求从N个元素中随机的抽取k个元素,其中N的大小未知。解题思路: 用到的方法为蓄水池抽样算法(reservoid sampling)。具体的思路是:先初始化一个集合,集合中有k个元素,将此集合作为蓄水池。然后...

2018-09-05 20:34:19 2502

原创 不使用新的变量交换两个变量的值

解题思路:加减法异或都很简单,思路很新奇# 加减法def swap(a, b): a = a + b b = a - b a = a - b return a,b# 异或def swap(a, b): a = a ^ b b = a ^ b a = a ^ b return a, b...

2018-09-05 20:28:15 661

原创 Leetcode#477. 汉明距离总和

题目描述:链接 解题思路:利用计算汉明距离的那题,暴力求解(leetcode中超时)好的方法进一步讨论中class Solution {public: int hammingDistance(int x, int y) { //两个数异或,为1表示原来的两个数对应的二进制位不同,只需统计异或结果中1的个数 int z = x^y;...

2018-09-05 18:03:25 472

原创 Leetcode#461. 汉明距离

题目描述:链接 解题思路:两个数的异或,如果二进制结果中某一位为1,说明原始数字的对应位置两个数是不同的,因此只需计算两个数异或之后1的个数即可;一个二进制数中1的个数,可以使用n&amp;(n-1)的方法;class Solution {public: int hammingDistance(int x, int y) { //两个数异或,为1...

2018-09-05 17:58:21 146

原创 python:对dict排序

d = {'a':7, 'b':3, 'e':12, 'c':8}按照key大小排序# 按key排序d1 = [(k, d[k]) for k in sorted(d.keys())]按照value大小排序# 按value排序d2 = sorted(d.items(), key = lambda x:x[1])...

2018-09-02 21:18:53 5087

原创 Leetcode#700. 二叉搜索树中的搜索

解题思路:题目递归,注意递归时要返回class Solution {public: TreeNode* searchBST(TreeNode* root, int val) { if(root == NULL) return root; if(root-&gt;val == val) ...

2018-08-29 23:30:26 290

原创 Leetcode#234. 回文链表

解题思路:快慢指针找到链表中点;反转链表中点-&gt;next,即链表的后半部分;同时遍历判断反转后的后半部分与前半部分的值的大小;/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :...

2018-08-28 23:39:45 114

原创 Leetcode#42. 接雨水

解题思路:可以发现被水填满后的形状是先升后降的塔形,因此,先遍历一遍找到塔顶,然后分别从两边开始,往塔顶所在位置遍历,水位只会增高不会减小,且一直和最近遇到的最大高度持平,这样知道了水位,就可以边遍历边计算面积;class Solution {public: int trap(vector&lt;int&gt;&amp; height) { if(h...

2018-08-28 17:43:28 214

原创 Leetcode#876. 链表的中间结点

解题思路:寻找中间节点的问题,最好的方法就是一个快指针,一个慢指针;细节:如果链表节点数是偶数,需要返回的是中间两个节点的第二个,可以通过快指针的状态区分链表节点是奇是偶/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ...

2018-08-27 23:36:48 265

原创 Leetcode#718. 最长重复子数组

动态规划:class Solution {public: int findLength(vector&lt;int&gt;&amp; A, vector&lt;int&gt;&amp; B) { int a = A.size(); int b = B.size(); int max_L = 0; vector...

2018-08-27 16:46:09 534

原创 Leetcode#230. 二叉搜索树中第K小的元素

解题思路:二叉搜索树的中序遍历是递增的;遍历后的第k个元素即为第k小;/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x),...

2018-08-26 23:36:42 292

原创 Leetcode#154. 寻找旋转排序数组中的最小值 II

解题思路:思路一:暴力搜索思路二:二分搜索,当 mid &gt; right时, left = mid+1;当mid &lt; left时,right = mid;否则,right–;//思路一class Solution {public: int findMin(vector&lt;int&gt;&amp; nums) { for(int i...

2018-08-26 23:28:40 254

原创 Leetcode#153. 寻找旋转排序数组中的最小值

解题思路:思路一:暴力搜索,后一个元素比前一个小,返回后一个元素;如果没有,说明最小的元素在第一个;思路二:二分搜索,//思路一class Solution {public: int findMin(vector&amp;lt;int&amp;gt;&amp;amp; nums) { if(nums.size() == 1) return num...

2018-08-26 23:11:11 438

原创 Leetcode#24. 两两交换链表中的节点

思路一:非递归,借助于一个新节点思路二:递归//思路一/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class S...

2018-08-26 22:16:03 247

原创 Leetcode#11. 盛最多水的容器

题目见图片: 解题思路:思路一:暴力求解,两个循环遍历,时间复杂度O(n*n);思路二:双指针p, q 头尾遍历,每次较小的指针往中间移动,直至相遇,时间复杂度O(n);//思路一class Solution {public: int maxArea(vector&lt;int&gt;&amp; height) { int max_area...

2018-08-26 21:42:20 127

原创 Leetcode#8. 字符串转整数 (atoi)

与之前的文章 atoi类似,这道题多了 Leetcode 题目的一些限制,条件有所改变,只需注意条件即可。class Solution {public: int myAtoi(string str) { if(str.length() == 0) return 0; long ret = 0; int ...

2018-08-26 21:16:20 107

空空如也

空空如也

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

TA关注的人

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