面试
GhostintheCode
来自大山深处的一名IT小学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ROC曲线,AUC,和P-R曲线的关系
ROC曲线,AUC,和P-R曲线的关系前言:二值分类器的指标很多,比如precision、recall、F1 score、P-R曲线 等发现这些指标或多或少只能反映模型在某一方面的性能。相比而言,ROC曲线则有很多优点,经常作为评估二 值分类器最重要的指标之一。P-R曲线Precision(查准率):P=TP/(TP+FP) 即预测结果中真正的正例的比例。Recall(查全率):R...原创 2020-03-02 16:44:07 · 9088 阅读 · 0 评论 -
能否说出几种降低过拟合和欠拟合风险的方法?
文章目录过拟合数据入手,获得更多数据降低模型复杂度正则化方法集成学习方法欠拟合添加新特征增加模型复杂度减小正则化系数过拟合1、数据入手,获得更多数据2、降低模型复杂度3、正则化方法4、集成学习方法数据入手,获得更多数据使用更多的训练数据是解决过拟合 问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小 噪声的影响。当然,直接增加实验数据一般是很困难的,但是可以通过一...原创 2020-03-02 16:42:14 · 1847 阅读 · 0 评论 -
剑指offer 替换空格 Python and C++
文章目录题目描述思路做题可能出现的问题pythonC++题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路思路很简单,遇到空格就替换,但是c++版本需要注意:函数没有返回值,void,这就代表你需要在原来的str上进行更改,首先遍历一边看看需要多长的长度,然后在进行替换。...原创 2020-01-08 00:06:26 · 246 阅读 · 0 评论 -
剑指offer 二维数组查找 Python and C++
文章目录题目描述思路一做题可能出现的问题pythonC++思路二题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路一从上面的图就可以看出,由于这个题目的特性,右上角和左下角的数有一种特性,通过和target的比较,你只有两条路可以走。在...原创 2020-01-07 13:54:11 · 235 阅读 · 0 评论 -
Python 返回数据流中的第k大元素 LeetCode NO.703
Python 返回数据流中的第k大元素 LeetCode NO.703思路:在理解这个题目的时候,首先大家要理解,heap的概念,也就是堆是什么(在这里简单的说下,一般而言我们说的堆都是树的结构,分为最大堆和最小堆,也就是堆顶的元素是是最大值还是最小值区分的。但是不只是树来实现的,还有二项式堆,斐波拉契堆,大家可以维基百科一下,各种操作的时间复杂度)。并且一般的高级语言中,都会实现heap...原创 2019-07-22 17:10:11 · 624 阅读 · 0 评论 -
python 最大深度最小深度 LeetCode 104,111
python 最大深度最小深度 LeetCode 104,111解法:1、BFS:寻找最大深度的时候,很容易想到就是,可以直接进行层次遍历,当无法在进行遍历下去的时候就是最深的深度;当寻找最小深度的时候,对每一个节点检查它是否是叶子节点,也就是检查它是否有左子树和右子树。2、DFS:每次进行遍历的时候,要判断是否是叶子节点,更新max深度的值和min深度的值。BFS版本# Defi...原创 2019-09-02 16:42:17 · 357 阅读 · 0 评论 -
python BFS和DFS LeetCode NO.102
python BFS和DFS LeetCodeBFS主要用队列来实现,DFS主要用栈来实现#BFS模版def BFS(graph,start,end): visited,quene = set(),[start] visited.add(start) while queue: node =quenue.pop() visited.add(node) process(node...原创 2019-08-31 16:56:36 · 509 阅读 · 0 评论 -
python 求众数 LeetCode N0.169
python 求众数 LeetCode N0.169class Solution(object): def majorityElement(self, nums): """ :type nums: List[int] :rtype: int """ count = 0 candidate = ...原创 2019-08-31 13:26:07 · 385 阅读 · 0 评论 -
Python pow(x,n) Leetcode NO.50 分而治之
Python pow(x,n) Leetcode NO.50 分而治之class Solution(object): def myPow(self, x, n): """ :type x: float :type n: int :rtype: float """ if n == 0: ...原创 2019-08-31 09:23:51 · 311 阅读 · 0 评论 -
python 最近公共祖先在二叉树中和在二叉搜索树中 LeetCode No.236 No.235
思路:通过递归的思路写这道题就非常容易,想象一下某一个状态,p,q 分别在root的两边,那代表什么?是不是代表,p,q是在root点分开的。那我们就找到了这个点。那再想象一下,如果p,q都在同一边,那我们就去找边找,比如,p,q都在左子树,那么我们就把根节点左子树传下去,右边同理。# Definition for a binary tree node.# class TreeNode(ob...原创 2019-08-08 12:39:58 · 269 阅读 · 0 评论 -
python 二叉树前序,中序,后序遍历 LeetCode No.144, No.94,No.145
这题和98基本上是一模一样,所以写98题之后,顺便写了97题,刚好想用一行写完,就有了下面的写法。大家以后写的时候可以多试试,有很大的成就感,而且为枯燥的刷题生活,增添一点乐趣。今天暂时先写个中序遍历吧,等过几天在写个前序和中序,还有ass要做,哭ing。# Definition for a binary tree node.# class TreeNode(object):# d...原创 2019-08-05 14:45:08 · 296 阅读 · 0 评论 -
python验证二叉搜索树 LeetCode NO.98
知识点:首先要明白什么是二叉搜索树,二叉树相信大家都明白,具有搜索功能的二叉树有什么特点呢?简单来说就是,一个树的左子树的所有元素,一定比根节点小,那么右子树的所有元素,一定比根节点大。另外一个性质就是,一个正确的二叉搜索树的中序(前序,中序,后序,不知道的可以复习一下),一定是一个递增序列。那么就有两种方法了,一个是递归,一个就是中序输出,判断前一个是不是比后一个要小。#第一种写法就是,把所...原创 2019-08-05 14:26:21 · 398 阅读 · 0 评论 -
python 有效的字母异位词 Leetcode No.242
class Solution(object): def isAnagram(self, s, t): """ :type s: str :type t: str :rtype: bool """ return sorted(s) == sorted(t)原创 2019-08-05 13:09:33 · 428 阅读 · 0 评论 -
Python 三个数之和 LeetCode No.15
知识点:主要考察的是哈希表的运用。大概思路就是,固定a,c两个数字,那么b就等于-a-c,通过建立一个哈希表,记性查找,这样的就可以从暴力算法的n立方的复杂度,到n平方的复杂度。class Solution(object): def threeSum(self, nums): """ :type nums: List[int] :rtyp...原创 2019-08-05 12:45:08 · 334 阅读 · 0 评论 -
机器学习面试之如何解决类别不平衡?
机器学习面试之如何解决类别不平衡?此内容是读西瓜书无意中看到的,觉得很重要,总结一下。原创 2019-07-23 13:51:16 · 372 阅读 · 0 评论 -
Python 小易的字典
编程题思路可以用动态规划的思想解决这样的题目,把一个大的问题拆分为两个小问题来解决。这里只有两个不一样的字母。那么字典中的字符串肯定是a开头的和z开头的。并且我们已知有多少个a和多少个z,就能求出他们有多少种排列组合(设为x)。那么这个适合会出现两种情况,如果k大于x,那么输出-1,如果k小于x,那么就看剩下的两种情况,1. 如果第一个字母是a的话,那么以a为首字母的字符串的排列组合是由n-...原创 2019-07-08 11:09:34 · 375 阅读 · 0 评论 -
python 括号字符串匹配 LeetCode No.20
Python 括号字符串匹配 LeetCode No.20思路: 主要思路也很简单,这属于栈这种数据结构的简单题。首先我们应该把括号的左半边压入栈中,当遇到右括号的时候,通过栈的pop操作,推出栈顶元素,与之配对,匹配了,就代表当前的操作是没有问题的,不匹配那就错了呗。 当然还有一种情况,当所有右括号都被匹配的时候,栈里面还有元素,那就代表,错了呗,如果完全匹配,stack中的元素应该是空的...原创 2019-07-22 11:16:56 · 1341 阅读 · 0 评论 -
python 无重复字符的最长子串 Leetcode No.3
python 无重复字符的最长子串 Leetcode No.3题意刚开始看到这个题目的是,下意识觉得会用动态规划写,动态规划有个经典题目,就是求两个字符串的公共最长子序列,感觉很像。anyway,哈哈哈哈。思路:第一种暴力解法,不说了第二种滑动窗口,先尝试选取一个合适的滑动窗口的大小,比如第一个例子中初步定下来是abc然后我们就往里面加后续的字母,比如往abc的滑动窗口中加入a,会发...原创 2019-07-22 11:14:29 · 383 阅读 · 0 评论 -
机器学习面试之SVM和LR的区别与联系
机器学习面试之SVM和LR的区别与联系这篇文章属于集百家之长,汇总一下,方便准备面试的人复习,整理一下别的资料,让自己有个理解的过程。对于没有什么统计知识背景的盆友,可能在看这篇文章有点麻烦,不过你可以就当混个眼熟。从线性回归到逻辑回归其实周老师已经写的很明白了(半年前我看这个的时候,边看还边骂,写的什么东西,一点也看不懂,周老师莫怪我,年少不懂事。我的经验总结下来就是查的资料多...原创 2019-07-23 17:29:15 · 753 阅读 · 0 评论 -
Python 两数相加 Add Two Numbers Leetcode No.2
Python 两数相加 Leetcode No.2思路很简单,模拟小学加法运算就好了,因为是逆序的,头指针指向的那个其实就是个位,往后加就完事,但是唯一需要注意的是,最高位可能有进位。(属于代码练习题)ps:还有人说先把数全部取出来,用计算机加法算完,再建立链表连接起来,乍一看有点投机取巧好像可行的样子,但是我们要考虑计算和的时候会溢出。还有人考虑直接在原来的链表上改数字,多一位的话,就再...原创 2019-07-12 11:50:50 · 597 阅读 · 0 评论 -
Python 每K个节点一组翻转链表 Leetcode No.25
Python 每K个节点一组翻转链表 Leetcode No.25题意: 之前有一道相邻节点之间反转,现在是任意制定k个元素,进行反转。ps:给初级者的小小建议,当你看不明白我写的文字话,可能是我没写好,也可能是你每有get到我的意思,那么你就尝试变写我的代码,边分析,实在不行就手动模拟一边画图,相信自己可以的。第一种利用栈结构首先能想到的当然是通过栈的结构,来进行反转,设置一个栈,先进...原创 2019-07-11 21:07:00 · 1105 阅读 · 0 评论 -
Python 环形链表 Linked List Cycle II No.142
Python 环形链表 Linked List Cycle II No.142其实和第141的思路大概一样,也是分为两种,不过第二种涉及到一些数学证明,有一点tricky。这题我还有一个不明白的就是,我第一次看到这题目的时候,为什么返回值是node,而不是index,我已知理解是输出一段文字,包含它的index。(我是菜鸡,谁能留言说一下,万分感谢)#第一种方法,在141的基础上改进了一下...原创 2019-07-11 12:58:19 · 358 阅读 · 0 评论 -
Python 链表中间是否有环 Leetcode No.141
Python 链表中间是否有环 Leetcode No.141Ps:用英语的不是为了装哈,主要是为了锻炼一下英语阅读,毕竟想往上走的话,读源码,读文档,读国外论文都是必经之路。那么英语能力必不可少,希望你们也可以想我一样。主要意思就是判断链表中是否有环。思路也很简单:一个是用set存,发现他数量不加了那不就代表有环了嘛。第二种方式非常的巧妙,用一个快指针和一个慢指针,就等于是一个龟兔赛...原创 2019-07-10 20:38:39 · 247 阅读 · 0 评论 -
python 反转节点 Leetcode No.24
Swap nodes in pairs大概题意就是两两相邻节点进行反转,但是如果是给的是5个节点的话,那么最后一个节点是不变的,注意这一点。思路非常简单,但是主要考察的是代码实现能力。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val =...原创 2019-07-10 19:06:33 · 260 阅读 · 0 评论 -
Python面试准备(四)之 python操作类题目
操作类题目Python 交换两个变量的值答:在 Python 中交换两个对象的值通过下面的方式即可a , b = b ,a但是需要强调的是这并不是元组解包,通过 dis 模块可以发现,这是交换操作的字节码是 ROT_TWO,意思是在栈的顶端做两个值的互换操作。在读文件操作的时候会使用 read、readline 或者 readlines,简述它们各自的作用答:read() 每次...转载 2019-07-04 18:38:20 · 1057 阅读 · 1 评论 -
Python面试准备(三)之 python数据类型
数据类型数据类型-字符串列举 Python 中的基本数据类型?答: Python3 中有六个标准的数据类型:字符串(String)、数字(Digit)、列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)。如何区别可变数据类型和不可变数据类型答: 从对象内存地址方向来说可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典...转载 2019-07-04 15:17:19 · 775 阅读 · 0 评论 -
Python面试准备(二)之 Python编码规范
编码规范什么是 PEP8?答:PEP8 通常会听别人提到,但是具体的指什么内容呢,简单介绍下。 《Python Enhancement Proposal #8》(8 号 Python 增强提案)又叫 PEP8,他针对的 Python 代码格式而编订的风格指南。了解 Python 之禅么?答:通过 import this 语句可以获取其具体的内容。它告诉大家如何写出高效整洁的代码。...转载 2019-07-04 12:31:12 · 421 阅读 · 0 评论 -
Python面试准备(一)之 python语言特性
语言特性谈谈对 Python 和其他语言的区别答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植、可扩展,可嵌入的解释型编程语言,属于动态语言。拿 C 语言和 Python 比: Python 的第三方类库比较齐全并且使用简洁,很少代码就能实现一些功能,如果用 C 去实现相同的功能可能就比较复杂。但是对于速度来说 Pyth...转载 2019-07-04 12:19:54 · 327 阅读 · 0 评论 -
Python 反转链表-reverse linked list Leetcode No.206
反转链表-reverse linked list假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。不要忘记在最后返回新的头引用!#非递归的形式class Solution: ...原创 2019-07-09 16:12:09 · 659 阅读 · 0 评论
分享