08 2018 档案
摘要:1、718. 最长重复子数组 给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。 这道题给了我们两个数组A和B,让我们返回连个数
阅读全文
摘要:1、415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 思路:和链表相加类似,求进位。 2、43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 示例
阅读全文
摘要:0、在线测试问题: 1、本地通过,但在线测试没有通过率的问题: 解决方法: (1)将程序包在下面代码里面试一试。 (2)将程序别包含在上面代码中再试一试。 2、考虑一下边界条件问题 1、题目描述一:读入一个字符串str,输出字符串str中的连续最长的数字串 输入描述: 个测试输入包含1个测试用例,一
阅读全文
摘要:1、第一类: 需查找和目标值完全相等的数 举例:704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 2、第二类: 查找第一个不小于目标值的数,可变形
阅读全文
摘要:1、剪绳子 给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[1]*...*k[m]可能的最大乘积是多少? 例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积是18
阅读全文
摘要:1、最长的重复子串 寻找一个字符串中最长的重复子串 最大后缀方法思路: 1. 用字符串指针数组保存用户输入的字符串的所有后缀字符串; 2. 将后缀字符串集合进行排序; 3. 比较相邻字符串的公共子串长度,找到长度最大值,保存相应字符串即为所求 空间复杂度:求长度为n的字符串的后缀,需要O(n)的空间
阅读全文
摘要:剑指offer题目总结: https://www.cnblogs.com/dingxiaoqiang/category/1117681.html 版权归作者所有,任何形式转载请联系作者。作者:马孔多(来自豆瓣)来源:https://www.douban.com/note/332117149/ (1)
阅读全文
摘要:1、1. 两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。数组是无序的,返回对应下标。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 这道题好就好在最低位在链表的开头,所以可以在遍历链表的同时按从低到高的顺序直接相加。while 循环的条件两个链表中只要有一个
阅读全文
摘要:1、14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 示例 2: 这道题让我们求一系列字符串的共同前缀,没有什么特别的技巧,无脑查找即可,我们定义两个变量i和j,其中i是遍历搜索字符串中的字符,j是遍历字符串集中的每个字符串。
阅读全文
摘要:1、不用加减乘除做加法 剑指offer面试题47:不用加减乘除做加法写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 2、交换两个变量 不使用新的变量,交换两个变量的值。 (1)基于加法的方法 (2)基于异或运算
阅读全文
摘要:1、动态规划求解 问题描述:(01背包问题)有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 对于这种问题,我们可以采用一个二维数组去解决:f[i][j],其中i代表加入背包的是前i件物品,j表示背包的承重,f[i][j]表示当前状态下能放进背包里
阅读全文
摘要:1、11. 盛最多水的容器 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器
阅读全文
摘要:1、字符串排列 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 (1)交换元素位置 class Solution { public: vector<string> Perm
阅读全文
摘要:目录: 1、有序树转换二叉树 2、洗牌问题 3、矩阵秩的几何意义 1、有序树转换二叉树 如果T2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2中结点的前序,T中结点的后序就是T2中结点的中序 2、洗牌问题 简单直接的方法:对数组从头到尾扫描一遍,扫描过程中,每次都从整个数组随机选一个元素,
阅读全文
摘要:1、572. 另一个树的子树 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1:给定的树 s: 给定的树 t: 返回 true,因为 t 与 s 的一个子树拥有相
阅读全文
摘要:一个完整的机器学习项目一般流程包括: 1、抽象成数学问题 首先要明确问题,分类还是回归,尽量避免胡乱尝试; 2、数据获取及分析 获取的数据要有代表性,否则必然会过拟合。 而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。 而且还要对数据的量级有一个评估,多少个样本,多
阅读全文
摘要:1、51. N皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别
阅读全文
摘要:1、79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ ['A','B','C','E'], ['S',
阅读全文
摘要:1、GAN的原理: GAN的主要灵感来源于博弈论中零和博弈的思想,应用到深度学习神经网络上来说,就是通过生成网络G(Generator)和判别网络D(Discriminator)不断博弈,进而使G学习到数据的分布,如果用到图片生成上,则训练完成后,G可以从一段随机数中生成逼真的图像。G, D的主要功
阅读全文
摘要:协同过滤的模型一般为m个物品,m个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。 一般来说,协同过滤推荐分为三种类型。第一种是基于用户(user-based)的协同过滤,
阅读全文
摘要:1、推荐系统目的 (1)帮助用户找到想要的商品(新闻/音乐/……),发掘长尾 (2)降低信息过载 (3)提高站点的点击率/转化率 (4)加深对用户的了解,为用户提供定制化服务 2、推荐算法概述 推荐算法是非常古老的,在机器学习还没有兴起的时候就有需求和应用了。概括来说,可以分为以下5种: 1)基于内
阅读全文
摘要:小结: 组合总和系列的题,题目都是一个套路,都是需要另写一个递归函数,这里我们新加入三个变量,start记录当前的递归到的下标,out为一个解,res保存所有已经得到的解,每次调用新的递归函数时,此时的target要减去当前数组的的数。 1、39. 组合总和 给定一个无重复元素的数组 candida
阅读全文
摘要:1、31. 下一个排列 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3
阅读全文
摘要:1、调整塔的高度 小易有一些立方体,每个立方体的边长为1,他用这些立方体搭了一些塔。 现在小易定义:这些塔的不稳定值为它们之中最高的塔与最低的塔的高度差。 小易想让这些塔尽量稳定,所以他进行了如下操作:每次从某座塔上取下一块立方体,并把它放到另一座塔上。 注意,小易不会把立方体放到它原本的那座塔上,
阅读全文
摘要:在c++中有两个关联容器,第一种是map,内部是按照key排序的,第二种是unordered_map,容器内部是无序的,使用hash组织内容的。 1、对有序map中的key排序 如果在有序的map中,key是int,或者string,它们天然就能比较大小,本身的就是有序的。不用额外的操作。 2、对有
阅读全文
摘要:1、利用自定义的排序函数 通过传递一个函数 cmp给sort函数 , 注意: cmp中return a<b; 决定为从小到大的排序 return a>b; 决定为从大到小的排序 2、自定义字符串的排序函数 (1)排序的比较方式,长度相同则字母排序,否则长度排序 在函数中定义时不用将比较函数定义为静态
阅读全文
摘要:标准库map类型是一种以键-值(key-value)存储的数据类型。 map是STL的一个关联容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里
阅读全文
摘要:1、字符统计 如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。 实现以下接口: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用) 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出 清空目前
阅读全文
摘要:Robert算子是一阶微分算子,比较简单,计算量小,对细节反应敏感。 Sobel算子是基于一阶导数的微分算子,其中引入了类似局部平均的运算,对于噪声有平滑作用,能很好地消除噪声的影响,所以计算量变大。 Prewitt算子和Sobel一样,图像中的点用Sobel的两个卷积核卷积,取最大值作为输出值。也
阅读全文
摘要:1、4. 两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。 你可以假设 nums1 和 nums2 均不为空。 示例 1: 示例 2: 这道题让我们求两个有序数组的中位数,
阅读全文
摘要:1、152. 乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 示例 2: 其实这道题最直接的方法就是用DP来做,而且要用两个dp数组,其中f[i]表示子数组[0, i]范围内的最大子数组乘积,g[i]表示子数组[0, i]范围内
阅读全文
摘要:1、EM算法要解决的问题 如果使用基于最大似然估计的模型,模型中存在隐变量,就要用EM算法做参数估计。 EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参
阅读全文
摘要:1、红黑树 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。 红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。
阅读全文
摘要:1、198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最
阅读全文
摘要:1、96. 不同的二叉搜索树 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 大概是这个意思: 当节点个数为0时有一种形态的树(也就是空树吧),当节点个数为1时有一种形态的树,之后就可以向下继续计算节点为2,3,4,5,……n。 2、95. 不同的二叉搜索树 II
阅读全文
摘要:1、[编程题] 洗牌 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张
阅读全文
摘要:1、41. 缺失的第一个正数 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。 示例 1: 示例 2: 示例 3: 思路:交换数组元素。使得数组中第i位存放数值(i+1)。 最后遍历数组,寻找第一个不符合此要求的元素,返回其下标。整个过程须要遍历两次数组,复杂度为O(n)。 下图以题目中给
阅读全文
摘要:1、84.柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其
阅读全文
摘要:1、最大和子矩阵 问题:求一个M*N的矩阵的最大子矩阵和。比如在如下这个矩阵中:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2 拥有最大和的子矩阵为:9 2-4 1-1 8其和为15。 假定原始矩阵的行数为M,那么对于子矩阵,它的行数可以是1到M的任何一个数,而且,对于一个K
阅读全文
摘要:1、64. 最小路径和 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和
阅读全文
摘要:1、74、搜索二维矩阵 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例: 现有矩阵 matrix 如下: 给定 target = 5,返回 true。 给定 target
阅读全文
摘要:1、54. 螺旋矩阵 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 示例 2: 思想:用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束后,往对角分别前进和后退一个单位。 提交代码时,主要的问题出在没有控制好后两个f
阅读全文
摘要:1、48. 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 示例 2: 这种方法首先对原数组取其转置矩阵,然后把每行的数字翻转可得到结果,如下所示
阅读全文
摘要:最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum aposteriori estimation, 简称MAP)是很常用的两种参数估计方法。 1、最大似然估计(MLE) 在已知试验结果(即是样本)的情况下,用来估计满足这些样本分
阅读全文
摘要:1、首先 Error = Bias + Variance Error反映的是整个模型的准确度, Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度, Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。 2、Bias与Variance往往是不能兼
阅读全文
摘要:1、数据清理中,处理缺失值的方法有两种: 删除法:1)删除观察样本 2)删除变量:当某个变量缺失值较多且对研究目标影响不大时,可以将整个变量整体删除 3)使用完整原始数据分析:当数据存在较多缺失而其原始数据完整时,可以使用原始数据替代现有数据进行分析 4)改变权重:当删除缺失数据会改变数据结构时,通
阅读全文
摘要:1、概念 L0正则化的值是模型参数中非零参数的个数。 L1正则化表示各个参数绝对值之和。 L2正则化标识各个参数的平方的和的开方值。 2、问题 1)实现参数的稀疏有什么好处吗? 一个好处是可以简化模型,避免过拟合。因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,那么对训练数据可以预
阅读全文
摘要:1、C++中对字符串进行插入、替换、删除操作 2、substr与substring对比 (1)substr 1 、substr 方法用于返回一个从指定位置开始的指定长度的子字符串。substr(start [, length ]) 2 、截取直接长度的字符串。substr(2,3),从下标为2开始,
阅读全文
摘要:1、148. 排序链表 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示例 2: 输入: -1->5->3->4->0 输出: -1->0->3->4->5 常见排序方法有很多,插入排序,选择排序,
阅读全文
摘要:笔试题知识点 1、存储一副大小为1024×1024,256个灰度的图像,需要(8M)byte。 256是2的8次方,即8位,8个bit,1个字节;等于1024*1024*8 (bit)=8M(bit)。 2、对于彩色图像,通常用以区分颜色的特征是:(色调)(饱和度)(亮度)。 3、多年来建立了许多纹
阅读全文
摘要:1、虚函数 原因:通过指针调用成员函数时,只能访问到基类的同名成员函数。在同名覆盖现象中,通过某个类的对象(指针及引用)调用同名函数,编译器会将该调用静态联编到该类的同名函数,也就是说,通过基类对象指针是无法访问派生类的同名函数的,即使这个指针是用派生类对象来初始化的。 虚函数是C++中用于实现多态
阅读全文
摘要:1、死锁原因 死锁问题被认为是线程/进程间切换消耗系统性能的一种极端情况。在死锁时,线程/进程间相互等待资源,而又不释放自身的资源,导致无穷无尽的等待,其结果是任务永远无法执行完成。 打个比方,假设有P1和P2两个进程,都需要A和B两个资源,现在P1持有A等待B资源,而P2持有B等待A资源,两个都等
阅读全文
摘要:1、进程(process) 狭义定义:进程就是一段程序的执行过程。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 简单的来讲进程的概念主要有两点:第一,进程是一个实体。每一个
阅读全文
摘要:1、输入包含空格的字符串 使用 getline(cin, str)读取一行字符串,遇到换行符停止;cin>>str,是遇到空格就停止。 2、第一行输入数组长度,第二行数组 例: 3 1 2 3 3、输入一组数,不知道长度,遇到回车结束 例: 1 2 3 回车 4、输入一维数组,保存到 vector
阅读全文
摘要:0、几种排序对比 1. 从平均时间来看,快速排序是效率最高的,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。而后者相比较的结果是,在n较大时归并排序使用时间较少,但使用辅助空间较多。 2. 上面说的简单排序包括除希尔排序之外的所有冒泡排序、插入排序、简单选择排序。其中直接插入排序最简单,但序
阅读全文
摘要:1、FAST FAST算子的基本原理是:若某像素点与其周围领域内足够多的连续的像素点存在某一属性差异,并且该差异大于指定阈值,则可以断定该像素点与其邻域像素有可被识别的不同之处,可以作为一个特征点(角点);对于灰度图像,FAST算子考察的属性是像素与其邻域的灰度差异。 这个检查过程可以用下图更清楚的
阅读全文
摘要:0、特征与匹配方法总结汇总对比 参考网址:http://simtalk.cn/2017/08/18/%E7%89%B9%E5%BE%81%E4%B8%8E%E5%8C%B9%E9%85%8D/#ORB (1)ORB:ORB特点就是计算速度快、节约了存储空间,但是它算法的质量较差而且没有解决尺度一致性
阅读全文
摘要:1、20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足:1、左括号必须用相同类型的右括号闭合。2、左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 2: 示例 4: 示例 5: 2、22. 括号生
阅读全文