
剑指offer
Jinlong_Xu
talk is cheap, show me code!
展开
-
【转】经典算法总结——背包问题(java实现)【已完结】
问题描述:一个背包的总容量为V,现在有N类物品,第i类物品的重量为weight[i],价值为value[i]那么往该背包里装东西,怎样装才能使得最终包内物品的总价值最大。这里装物品主要由三种装法:1、0-1背包:每类物品最多只能装一次2、多重背包:每类物品都有个数限制,第i类物品最多可以装num[i]次3、完全背包:每类物品可以无限次装进包内一、0—1背包思路分析:...转载 2019-07-22 11:39:11 · 570 阅读 · 0 评论 -
L1和L2正则化区别
1. L1和L2的定义L1正则化,又叫Lasso Regression如下图所示,L1是向量各元素的绝对值之和L2正则化,又叫Ridge Regression如下图所示,L2是向量各元素的平方和2. L1和L2的异同点相同点:都用于避免过拟合不同点:L1可以让一部分特征的系数缩小到0,从而间接实原创 2017-09-07 20:47:22 · 4948 阅读 · 0 评论 -
GBDT和随机森林的区别
GBDT和随机森林的相同点:1、都是由多棵树组成2、最终的结果都是由多棵树一起决定GBDT和随机森林的不同点:1、组成随机森林的树可以是分类树,也可以是回归树;而GBDT只由回归树组成2、组成随机森林的树可以并行生成;而GBDT只能是串行生成3、对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,转载 2017-09-07 20:43:23 · 1587 阅读 · 0 评论 -
详解-逆波兰表达式
表达式一般由操作数、运算符组成,例如算术表达式中,通常把运算符放在两个操作数的中间,这称为中缀表达式,如A+B。波兰数学家Jan Lukasiewicz提出了另一种数学表示法,它有两种表示形式:把运算符写在操作数之前,称为波兰表达式或前缀表达式,如+AB;把运算符写在操作数之后,称为逆波兰表达式或后缀表达式,如AB+;将中缀表达式转换成后缀表达式算法:1、从左至右扫描中缀表原创 2017-09-07 11:28:13 · 2384 阅读 · 0 评论 -
一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,这个序列的初始值从1开始,但是1并不在这个数列中。求第1500个值是多少?
一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,这个序列的初始值从1开始,但是1并不在这个数列中。求第1500个值是多少?正确答案: C 你的答案: C (正确)2040204220452050添加笔记收藏纠错本题知识点数组 微软原创 2017-09-07 11:13:06 · 1675 阅读 · 0 评论 -
具有N个节点的二叉树有多少种形态,居然有计算公式
具有3个结点的二叉树有几种形态?正确答案: B 你的答案: B (正确)4567解析这是一道牛客网上的测试题,因为题目是求3个节点的二叉树的形态,所以直接手画了。但是看解析的时候,发现评论区居然有计算公式,真的是大开眼界啊。那个回答者给出的答案是:这是组合计数问题,最原创 2017-09-07 10:34:11 · 17465 阅读 · 2 评论 -
【剑指offer】面试题 50:第一个只出现一次的字符
题目描述在一个字符串(1时间限制:1秒 空间限制:32768K 热度指数:89137本题知识点: 字符串思路算法:利用hash表就可以解。哈希表的键值是字符,值是该字符出现的次数。 扫描两次字符串,第一次扫描字符串时,每扫描一个字符,就在哈希表的对应项中把次数加 1。 第二次扫描字符串时,每扫描一个字符,就可以得到该字符出现的次数。对于次数为原创 2017-08-24 10:57:28 · 396 阅读 · 0 评论 -
【剑指offer】面试题 57:和为 S 的数字
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。时间限制:1秒 空间限制:32768K 热度指数:62731思路要找两个数的和为S,并不难,但是如果存在多个符合这样要求的数,那么要找两个数的积原创 2017-08-26 22:34:51 · 440 阅读 · 0 评论 -
【剑指offer】面试题 53:数字在排序数组中出现的次数
题目描述统计一个数字在排序数组中出现的次数。时间限制:1秒 空间限制:32768K 热度指数:71223本题知识点: 数组参考代码class Solution {public: int GetNumberOfK(vector data ,int k) { return count(data.begin(),原创 2017-08-26 13:30:49 · 478 阅读 · 0 评论 -
【剑指offer】面试题 49:丑数
题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。时间限制:1秒空间限制:32768K热度指数:78646本题知识点: 数组思路将每一个丑数保存下来,用空间换时间的算法。下一个丑数是由原创 2017-08-22 19:35:15 · 502 阅读 · 0 评论 -
【美团点评】无人驾驶算法工程师 2017-09-03电话面试
前言以后关于校招的面经,全部以问题的形式写在博客里面。校招季很忙,没有那么多时间去写博客,希望大家谅解。面经1、自我介绍2、问简历上的项目,一个是模型压缩方面的,一个是目标检测方面的;3、了解机器学习算法吗?说说随机森林,SVM,GBDT算法;4、介绍一下LR;LR中存在很多稀疏的系数,你怎么去控制;(这个不会,求大佬在下面留言)5、刚刚你说了下SVM,那么SV原创 2017-09-04 14:32:58 · 5259 阅读 · 4 评论 -
【剑指offer】面试题 45:把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。时间限制:1秒 空间限制:32768K 热度指数:74280本题知识点: 数组思路对vector容器内的数据进行排序。将 a 和 b 转为 string 后,若 a +原创 2017-08-22 11:35:32 · 490 阅读 · 0 评论 -
【剑指offer】面试题 43 : 1~n 整数中 1 出现的次数
题目描述输入一个整数 n,求1~n 这 n 个整数的十进制表示中1出现的次数。例如,输入12, 1~12 这些整数中包含1的数字有1、10、11、12,1 一共出现了 5 次。时间限制:1秒 空间限制:32768K 热度指数:57580思路非常直观的方法。每次通过对10取余,判断整数的个位数是不是 1 。如果这个数字大于 10,原创 2017-08-21 17:08:29 · 424 阅读 · 0 评论 -
K-means中的K值选择与初始点的选择
关于如何选择Kmeans等聚类算法中的聚类中心个数,主要有以下方法:1. 最简单的方法:K≈sqrt(N/2)2. 拐点法:把聚类结果的F-test值(类间Variance和全局Variance的比值)对聚类个数的曲线画出来,选择图中拐点3. 基于Information Critieron的方法:如果模型有似然函数(如GMM),用BIC、DIC等决策;即使没有似然函数,如KMe原创 2017-09-07 21:43:36 · 9294 阅读 · 0 评论 -
排序算法专项总结
1、选择排序,是每一次从未排序序列中找出一个最大或者最小的数,放到已排好序的数列最后。因此关键字比较次数跟数列的初始排列顺序是没有关系的。2、初始数据集排列顺序与比较次数无关的有:口诀:一堆(堆排序)海归(归并排序)选(选择排序)基友3、插入排序、堆排序、冒泡排序、快速排序的比较插入排序是依次比较找到自己的位置,有序的数组比较次数少堆排序在数据有序时能够降低维护原创 2017-09-10 11:06:09 · 990 阅读 · 0 评论 -
汉诺塔问题
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。设移动n个盘子的汉诺塔问题需要g(n)次移动操作来完成。由展示移动过程算法可知g(n)应是三部分之和。原创 2017-09-10 11:07:09 · 832 阅读 · 0 评论 -
【转】2019春季阿里笔试算法题——判断一个点是否在多边形内部
题目描述:自己任意输入几个点构造一个多边形,然后再随机输入一个点,判断该点是否在多变形里面,如果不在,那么该点离多变形的最短距离是多少。思路一:下面是几个比较基本的方法:(1)面积法:将这个点与多边形的所有顶点连线,将所形成的所有三角形面和求和,如果和多边形面积相等则点在多边形内部(2)夹角法:将这个点与多边形的所有顶点连线,如果夹角和为360°则点在多边形内部(3)射线...转载 2019-07-17 15:52:29 · 933 阅读 · 0 评论 -
【华为机试在线训练】提取不重复的整数
题目描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数示例1输入9876673输出37689时间限制:1秒空间限制:32768K热度指数:102900参考代码import java.util.Scanner...原创 2019-07-16 22:51:44 · 257 阅读 · 0 评论 -
【剑指offer】面试题 67:把字符串转换成整数
题目描述将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入+2147483647 ...原创 2019-07-06 22:11:55 · 459 阅读 · 0 评论 -
【华为机试在线训练】取近似值
题目描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:输入一个正浮点数值输出描述:输出该数值的近似整数值示例1输入5.5输出6时间限制:1秒空间限制:32768K热度指数:85013思路将整数和小数用split()方法分割开,同时小数只需要取第一位小数...原创 2019-07-15 23:35:01 · 264 阅读 · 0 评论 -
【剑指offer】面试题 3:数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。时间限制:1秒空间限制:32768K热度指数:256179本题知识点:数组思路解法一:直接...原创 2019-07-14 11:27:05 · 307 阅读 · 0 评论 -
【剑指offer】面试题 58:翻转单词顺序列
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?时间限制:1秒空间...原创 2019-07-13 15:01:13 · 299 阅读 · 0 评论 -
【剑指offer】面试题 10-扩展:矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?时间限制:1秒空间限制:32768K热度指数:318412本题知识点:递归思路依旧是斐波那契数列的变形。2*N的大矩形,和N个2*1的小矩形。接下来,我们需要考虑的是递归的几种情形:1、target <= ...原创 2019-07-13 11:54:44 · 343 阅读 · 0 评论 -
【剑指offer】面试题 38:字符串的排序
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。时间限制:1秒空间限制:32768K热度指数:410292本题知识点:字符串动态规划递归思路递归法...原创 2019-07-07 16:05:01 · 448 阅读 · 0 评论 -
【编程题】基本字符串压缩
[编程题]基本字符串压缩热度指数:58188 时间限制:3秒 空间限制:32768K利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。给定一个string iniString为待压缩的串(长度小于等于10000),保证串内字符均由大小写英文字母组成,返回一个...原创 2018-09-15 20:31:18 · 1413 阅读 · 0 评论 -
【编程题】空格替换
链接:https://www.nowcoder.com/questionTerminal/b0850698cb41449188344cdb647f3e99来源:牛客网 [编程题]空格替换热度指数:33253 时间限制:3秒 空间限制:32768请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同...原创 2018-09-09 21:36:15 · 401 阅读 · 0 评论 -
【编程题】确定字符互异
链接:https://www.nowcoder.com/questionTerminal/9618c2a9e8a14c3e82954ee14168f592来源:牛客网 [编程题]确定字符互异热度指数:76985 时间限制:3秒 空间限制:32768K请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString...原创 2018-09-09 18:25:45 · 401 阅读 · 0 评论 -
【金山云】机器学习算法工程师2017年8月29号电话一面(内推)
简短的跟大家聊聊面试经验吧。现在这个时间节点上,差不多内推已经结束,开始了内推电话面试。之前投递了很多家的公司的内推,其中金山云就是。我是8月16号投递的内推,到现在差不多有十多天了。昨天接的HR电话面试,约的第二天面试。在这里我简单回顾一下我的面试,两点准时打过来的电话。第一句话就是介绍一下说自己是金山云的面试官,然后说开始要面试。在正式开始之前,先问了一个问题,我们这边是做图像处理原创 2017-08-29 15:21:31 · 1850 阅读 · 0 评论 -
【剑指offer】面试题 42:连续子数组的最大和
题目描述输入一个整型数组,数组里有正数也有负数。数组中的一个或者连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。时间限制:1秒 空间限制:32768K热度指数:73009本题知识点: 数组思路用sum记录和最大,tempsum记录累加值。基本思想:对于一个数A, 若A的左边累加值为非负,那么加上原创 2017-08-21 16:51:05 · 397 阅读 · 0 评论 -
【剑指offer】面试题 40:最小的 k 个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。时间限制:1秒 空间限制:32768K 热度指数:126946本题知识点: 数组参考代码class Solution {public: vector GetLeastNumbers_Solution(vector原创 2017-08-21 10:21:22 · 426 阅读 · 0 评论 -
【剑指offer】面试题 11:旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。时间限制:3秒 空间限制:32768K 热度指数:154210本题知识原创 2017-07-05 19:55:06 · 471 阅读 · 0 评论 -
【剑指offer】面试题16:数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。时间限制:1秒 空间限制:32768K 热度指数:112816思路首先,考虑一下幂次数的不同情况,幂次数为 0,正整数,负整数。幂次数为 0,结果自然为 0;对于负整数,可以考虑先转化成正整数,再对结果求倒数。优化原创 2017-07-13 22:24:34 · 386 阅读 · 0 评论 -
2017年华为实习生笔试题
第一题: 输入:一个整数n(n可能很大) 输出:例如 n = 789 ; f(n) = 7+8+9 = 24; f(n) = 2+4 = 6;此时f(n)只有1位,输出f(n) 样例输入:4546313123 样例输出:5 我的答案: package 华为笔试;转载 2017-07-05 09:29:45 · 953 阅读 · 0 评论 -
【剑指offer】面试题 9:用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。时间限制:1秒 空间限制:32768K 热度指数:108908本题知识点: 队列 栈参考代码:# -*- coding:utf-8 -*-class Solution: def __init__(self): self原创 2017-06-25 23:41:07 · 426 阅读 · 0 评论 -
【剑指offer】面试题 8:二叉树的下一个节点
题目描述给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。思路以二叉树的中序遍历是 {d, b, h, e, i, a, f, c, g} 为例。如果一个节点有右子树,那么按照中序遍历的规则,它的下一个节点就是它的右子树的最左子节点。如果一个节点没有右子树,如果节点是其父节点的左子原创 2017-06-25 22:17:48 · 511 阅读 · 0 评论 -
【剑指offer】面试题 4:二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。时间限制:1秒 空间限制:32768K 热度指数:315456本题知识点: 查找思路:将二维数组当成矩阵,从右上角出发,比较目标数字与当前数字的大小。如果目标原创 2017-06-20 23:53:59 · 598 阅读 · 0 评论 -
【剑指offer】面试题 7:重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。时间限制:1秒 空间限制:32768K 热度指数:162011思路:由前序遍历可以知道二叉树的根节点,而后序原创 2017-06-25 16:27:35 · 606 阅读 · 0 评论 -
【剑指offer】面试题 6:从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。时间限制:1秒 空间限制:32768K 热度指数:243238本题知识点: 链表思路:第一种,从尾到头打印每一个节点的值,那么肯定要先遍历整个链表,再从尾部开始打印。这个过程是典型的“先入后出”,所以考虑用栈实现。遍历的时候,每遍历一个节点就放到栈中。遍历结束后,再从栈顶开始打印输出节点的值原创 2017-06-21 13:40:33 · 721 阅读 · 0 评论 -
【剑指offer】面试题 5:替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。时间限制:1秒 空间限制:32768K 热度指数:283203本题知识点: 字符串思路:第一种,简单粗暴,直接遍历,从前往后替换。遇到空格,就替换,同时将后面的所有字符都往后原创 2017-06-21 00:20:09 · 587 阅读 · 0 评论 -
【剑指offer】面试题 10:斐波那契数列及其推广
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n时间限制:1秒 空间限制:32768K 热度指数:153571思路1、用递归来实现,但是递归存在调用栈溢出的风险。调用栈溢出是因为递归的计算中,每次函数调用在内存栈中分配空间,而每个进程的栈的容量都是有限的。原创 2017-06-29 15:59:57 · 585 阅读 · 0 评论