
面试之路
文章平均质量分 94
记录leetcode刷题过程。方法论:分类400+精选250随机
LotusQ
自得其乐
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手写算法系列(Python实现)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、K-Means二、pass总结前言锻炼自己实现算法的能力,提示:以下是本篇文章正文内容,下面案例可供参考一、K-MeansK-Means算法'''K-means算法是一种常用的无监督聚类算法,可以视作同时优化质心和每个样本的标签,使得损失函数最小,算法执行过程提现了EM的思想'''import numpy as npimport randomclass KMeans(): def __ini原创 2020-09-03 15:53:08 · 563 阅读 · 0 评论 -
秒杀面试Boosting家族~
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、常见问题二、解惑Boosting和BaggingGBDT与它的两个孩子总结前言面试中几乎是必问的内容,不知道你掌握的怎么样了呢,不管怎么样,看完这篇就没问题!提示:以下是本篇文章正文内容,下面案例可供参考一、常见问题GBDT和XGBoost的区别?XGBoost和LightGBM的区别?XGBoost和RF(随机森林)的区别?XGBoost损失函数有什么要求?LightGBM的目标函数是什么?二原创 2020-08-24 09:21:56 · 338 阅读 · 0 评论 -
Python面试一网打尽
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、Python装饰器、迭代器、生成器二、Python中的深拷贝和浅拷贝二、Python的可变和不可变类型总结前言本文对Python相关面试问题做一个总结,并将答案贴出,持续更新。提示:以下是本篇文章正文内容,下面案例可供参考一、Python装饰器、迭代器、生成器原创 2020-08-23 21:38:32 · 374 阅读 · 0 评论 -
Leetcode计算器问题(Python)
from collections import dequeclass Solution: def calculate(self, s: str) -> int: def helper(s): stack = [] sign = '+' num = 0 while len(s)>0: c = s.popleft()原创 2020-08-18 08:42:55 · 226 阅读 · 0 评论 -
Leetcode丢鸡蛋问题(Python)
887.鸡蛋掉落点评:这个题是一个经典的动态规划题,符合原问题的最优解可以从子问题的最优解中得出的特点。#超时class Solution: def superEggDrop(self, K: int, N: int) -> int: #状态表示 当前为K个鸡蛋,N层楼时的最小移动次数 #状态选择 如果鸡蛋碎了,K-1,1~ i-1;如果鸡蛋没碎,K不变,i+1~N #basecase 0个鸡蛋,需要一层层的测试;0个楼层,直接返回0原创 2020-08-17 20:41:48 · 640 阅读 · 0 评论 -
Python排列组合模板
笔试题第一个往往涉及到排列组合的问题,本文将给出一个Python语言的排列和组合的代码模板,像记住快排一样能够在各种笔试面试算法题中熟练默写。原创 2020-08-16 10:38:33 · 448 阅读 · 0 评论 -
LeetcodeNSum之和小结(Python)
前言:这个系列分为1、15、18三个题,分别是两数之和、三数之和和四数之和。其中两数之和要返回两数的下标,其余是返回组成的数字。1.两数之和点评:用了个hash表来保存每个数的下标。class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: a = {nums[i]:i for i in range(len(nums))} for i in range(len(n原创 2020-08-15 14:22:53 · 322 阅读 · 0 评论 -
Leetcode买卖股票系列题小结(Python)
121.买卖股票的最佳时机点评:整个思考化简过程还是没有跳出整个框架。k=1的时候通过写上发现k这个状态可以去掉,初始化正好也有机的结合到了转移方程中,最后例行优化空间。class Solution: def maxProfit(self, prices: List[int]) -> int: #状态,选择。有三种状态,第几天,第几次交易。三种状态转换,buy、sell、rest,使得在0-1间转换。 #dp[i][k][0]和dp[i][k][1]分别代表原创 2020-08-14 22:41:21 · 316 阅读 · 0 评论 -
Leetcode打家劫舍小结(Python)
class Solution: #备忘录写法 def rob(self, nums: List[int]) -> int: a = {} def dp(i): if i >= len(nums):return 0 if i in a:return a[i] res = max(dp(i+2)+nums[i], dp(i+1)) if i not in a原创 2020-08-14 18:47:21 · 463 阅读 · 0 评论 -
Leetcode完全/无限背包小结(Python)
原始完全背包问题说明:输入输出样例#二维DPN, V = map(int, input().split())dp = [[0 for i in range(V+1)] for j in range(N+1)]for i in range(1, N+1): vi, wi = map(int, input().split()) for j in range(1, V+1): dp[i][j] = dp[i-1][j] if j >= vi:原创 2020-08-13 21:30:54 · 594 阅读 · 0 评论 -
Leetcode0-1背包小结(Python)
0-1背包类的题目很简单,只要想清楚如何将问题转换为0-1背包(如分堆),套用一维模板直接秒杀。原始0-1背包问题说明:输入输出样例#二维写法N, V = map(int, input().split())dp = [[0 for i in range(V+1)] for j in range(N+1)]for i in range(1, N+1): vi, wi = map(int, input().split()) for j in range(1, V+1):原创 2020-08-13 21:28:36 · 335 阅读 · 0 评论 -
Leetcode滑动窗口四题小结(Python)
这种类型的题就是模板题,以后套模板就行了。需要注意的几个地方在注释中给出。3. 无重复字符的最长子串中等题点评:这个题过于简单,以至于模板整体结构都被改掉了,想看模板的建议从下面开始看。class Solution: def lengthOfLongestSubstring(self, s: str) -> int: window = {} l, r = 0, 0 res = 0 while r < len(s):原创 2020-08-13 21:24:59 · 272 阅读 · 0 评论 -
Linux文本分析处理命令大全
一文带你从零掌握Linux文本分析处理命令,包括cat、sort、uniq、cut、paste、join、comm、diff、patch、tr、sed、aspell。原创 2020-08-11 20:57:58 · 333 阅读 · 0 评论 -
看完这篇精选面试算法题集合,你也能进大厂!(Python版)
根据数据结构,可以将算法题分成数组、字符串、链表、栈、队列、树等几大类。根据算法,可以将题分为递归和循环、查找和排序、回溯法、动态规划和贪婪算法、位运算、DFS&BFS、随机、数学等几大类。而算法和数据结构又是一个排列组合的过程。上面介绍的算法和数据结构都是要十分熟练的掌握的,就不再总结,下面我们总结的是一些常见的技巧,有了这些技巧伴身,相信秋招算法题不在话下。文章目录一、经典类型1.滑动窗口2.双指针3.快慢指针“龟兔赛跑”4.区间合并5.循环排序6.链表翻转7.树BFS8.树DFS9.双堆1原创 2020-08-06 16:24:33 · 753 阅读 · 0 评论 -
CNN面试看这一篇就够了
文章目录1. 计算机视觉2.边缘检测示例3.更多边缘检测内容4.Padding5.卷积步长6.三维卷积7.单层卷积网络8.简单卷积网络示例9.池化层10.卷积神经网络示例11.为什么使用卷积?1. 计算机视觉2.边缘检测示例3.更多边缘检测内容4.Padding5.卷积步长6.三维卷积7.单层卷积网络8.简单卷积网络示例9.池化层10.卷积神经网络示例11.为什么使用卷积?...原创 2019-11-20 09:09:10 · 1165 阅读 · 0 评论 -
朴素贝叶斯的面试看这一篇就够了
文章目录1.学习与分类2.参数估计1.学习与分类2.参数估计原创 2020-08-04 16:38:48 · 679 阅读 · 0 评论 -
决策树的面试看这一篇就够了
文章目录pass原创 2020-08-04 16:20:42 · 915 阅读 · 0 评论 -
机器学习面试知识点整理
各模型的优缺点及适用场景?一、传统机器学习算法感知机、SVM、LR、Kmeans、DBSCAN、决策树(CART、ID3、C4.5)、GBDT、RF、AdaBoost、XGBoost、LightGBM、EM、BP神经网络、朴素贝叶斯、LDA、PCA、核函数、最大熵二、深度学习CNN、RNN、LSTM、常用激活函数、Adam等优化算法、梯度消失(爆炸)三、推荐系统ItemBasedCF、userBasedCF、冷启动、SVD(各种变形)、FM、LFM四、NLPTF-IDF、TextRank、W原创 2020-08-03 11:26:28 · 2220 阅读 · 0 评论 -
2020年最值得加入的互联网公司有哪些?
北京:百度、阿里(阿里文娱,阿里影业,阿里健康)、腾讯(OMG,MIG)、京东、小米、字节跳动、美团、滴滴、爱奇艺、网易有道、搜狐、新浪、高德、搜狗、58同城、360、知乎、新浪微博、猎豹移动、微软中国、金山、猿辅导、陌陌科技、去哪儿网、盛大文学、自如网、凤凰网、穷游、36氪、虎嗅、豆瓣、拉勾、宜信、人人车、马蜂窝、用友软件、美菜网、学而思、智联招聘、完美世界、搜狐畅游、甲骨文、新浪乐居、猎聘网、金山软件、汽车之家、粉笔网、艺龙旅行网、赶集网、中华英才网、印象笔记、轻课、兰亭集势、易车网、折800、蓝港.转载 2020-05-16 18:01:15 · 5018 阅读 · 0 评论 -
【面试题11】旋转数组的最小数字
思路总结:首先得了解面试官的意图,这题用顺序搜索肯定不行,因此应该用二分。关于二分边界定义,这里有一篇好文,复习一下。Python解法:# -*- coding:utf-8 -*-class Solution: def minNumberInRotateArray(self, rotateArray): # write code here if no...原创 2019-11-25 19:47:38 · 200 阅读 · 0 评论 -
【面试题9】用两个栈实现队列
思路分析:Python中实现一个队列的push和pop比较简单,但是题目中的要求是用两个栈来实现队列,意思就是只能用stack的push和pop构建队列的push和pop,不能有其他的操作。因此,两个栈的话考虑队列和栈出入顺序是相反的,stack2相当于一个临时保存的地方。第一次循环,取出第一个元素,第二次循环重新复原。Python题解:# -*- coding:utf-8 -*-clas...原创 2019-11-24 17:01:46 · 147 阅读 · 0 评论 -
【面试题7】重建二叉树
**思路总结:**看到最下面这个解法,我忍不住想到了leetcode上的一道题 100.相同的树。都是一种一层层网上返回左右子树的递归思路。本题这种解法利用的是生成二叉树的一点trick,当前结点的前序遍历数组中前半部分部分为其左子树,后半部分为其右子树,具体那些是,可以看中序遍历数组中当前结点所在的位置,前半部分是左子树,后半部分是右子树。Python解法:# -*- coding:utf...原创 2019-11-21 15:09:08 · 161 阅读 · 0 评论 -
从尾到头打印链表-Python、Java双解法
Python解法# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromT...原创 2019-11-19 15:40:46 · 158 阅读 · 0 评论 -
【面试题5】替换空格
解题思路前瞻知识点考察:字符串与list的互相转换Python解法# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace(self, s): # write code here ls = list(s) for i in range(len(ls)):...原创 2019-11-19 15:30:30 · 203 阅读 · 0 评论 -
【面试题4】二维数组中的查找
题目描述:思路总结:这个题最好想到的思路就是一个O(nlogn)的解法,因为每一行是有序的,对每一行使用二分查找,解法一就是使用的这种思路。Python解法一:# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, array): #思路:对每一行用二分查找,如果找...原创 2019-10-30 16:18:31 · 260 阅读 · 0 评论 -
【Dask机器学习实例(8)】使用Dask并行化训练XGBoost:Dask-XGBoost的使用
原文来自:Dask ExamplesXGBoost可以通过Dask来并行化训练。XGBoost提供了一个强大的预测框架,在Kaggle竞赛和工业界都表现不错,它具有很好的性能和易解释性。(例如,很容易从XGBoost模型中找到重要的特征。)准备Dask启动Dask client,可以通过Dashboard来查看各种性能指标。from dask.distributed import Cli...原创 2020-02-07 21:59:00 · 2551 阅读 · 1 评论 -
【机器学习竞赛(2)】视频点击预测大赛解决方案
本次竞赛的原创 2020-02-10 21:57:37 · 540 阅读 · 0 评论 -
Kaggle机器学习竞赛通用流程
同样适用于其他机器学习比赛。工业应用:经济相关:股市、房价预测;能源相关:产能预测、分配与合理使用;NLP相关:检索、分类、主题、相似度;互联网用户行为:CTR预测;销量预测:电商、连锁店、超市;深度学习应用:图像内容理解;推荐系统相关:电商推荐;其他预测:气候、社交网络分析。工具和算法:非监督学习:聚类&降维(SVD、PCA、K-means)关联分析(Apri...原创 2020-02-06 23:59:20 · 324 阅读 · 0 评论 -
国内外知名数据科学竞赛链接汇总~持续更新
收集国内外知名的数据科学竞赛平台,持续更新中~Kaggle微众采薇CCF指定-DataFountain和鲸FlyAIKDD-CUPpass原创 2019-09-27 20:03:52 · 1319 阅读 · 0 评论 -
【机器学习竞赛(1)】 一文从“Kaggle泰坦尼克之灾”入门机器学习竞赛
开始学习并参加Kaggle等相关的机器学习竞赛,首先找到的是这一篇虽然这只是最入门级的操作,只用了一个简单的线性回归模型,但是里面一些特征工程和数据相关的操作依然让我学习到了很多,记录下来方便以后的回顾,也顺道弄清一些类和方法的使用。粗略查看数据pd.read_csv()df.head()df.describe()df.col_name #获取df的某一列的Series对象探索...原创 2020-02-10 01:47:03 · 426 阅读 · 0 评论 -
Kaggle提交不了的解决办法
最近开始参加一些入门级的Kaggle比赛,第一次提交之后提示:Checking server for existing uploadError while uploading百思不得其解之后才想到是不是被墙了,挂了个梯子之后果然提交上了。...原创 2019-09-25 17:01:20 · 8970 阅读 · 6 评论 -
341.扁平化嵌套列表迭代器
难度:中等题目描述:思路总结:方法一:用递归扁平化整个list方法二:用栈在调用hasNext()的时候找到下一个元素题解一:# """# This is the interface that allows for creating nested lists.# You should not implement it, or speculate about its impleme...原创 2020-01-15 09:29:52 · 204 阅读 · 0 评论 -
332.重新安排行程
难度:中等题目描述:思路总结:方法一:字典,优先队列,DFS递归。这个方法属实精彩,利用了最小堆的排序特性满足了题目中的说明1,对于一些特殊用例,比如循环返回图(具体见参考1)使用DFS递归,实现了先存较小的,也很好的满足了说明1。参考阅读:Java题解,思路最详细Python优先队列模块heapq题解一:import heapqclass Solution: ...原创 2020-01-14 20:26:57 · 355 阅读 · 0 评论 -
218.天际线问题
难度:困难题目描述:思路总结:方法一:暴力(超时)方法二:最大堆,具体步骤见注释,trick比较多。题解一:(自写,超时)思路没啥问题,就是太暴力,没用题目要求用的数据结构,必然会被极端用例逼死。class Solution: def getSkyline(self, buildings: List[List[int]]) -> List[List[int]]:...原创 2020-01-13 21:05:14 · 431 阅读 · 0 评论 -
347.前K个高频元素
难度:中等题目描述:思路总结:一看到前K个,立即想到堆。方法一:Counter和heapq的nlargest方法。题解一:from collections import Counterimport heapqclass Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: ...原创 2020-01-12 21:34:03 · 279 阅读 · 0 评论 -
215. 数组中的第K个最大元素
难度:中等题目描述:思路总结:方法一:暴力,排序法。方法二:partition思想方法三:堆参考阅读:巨佬的三种思路详细题解题解一:(瞎J8写)一行解决战斗,然后面试就挂了。class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: return sorted...原创 2020-01-12 21:14:52 · 298 阅读 · 0 评论 -
84.柱状图中最大的矩形
难度:困难题目描述:思路总结:这个题看了好久,知道抄下代码的那一刻才明白了。看似短短的几行代码,蕴含的东西却是不少。首先要从这题的问题转化开始。在柱状图中能勾勒出的最大的矩形面积等价于求解以每个柱子为中心求包含当前柱子的最大矩形面积,这一点不难理解。我们要做的就是,走到每个柱子的时候,我们要求往左第一个柱子面积小于其的下标,和往右第一柱子面积小于其的下标,这样就可以计算出面积了。我们利用单...原创 2020-01-12 20:09:44 · 191 阅读 · 0 评论 -
385.迷你语法分析器
难度:中等题目描述:思路总结:这题其实思路和前面几道差不多,但是就是NestedInteger这个东西比较迷惑人,其实本题要做的就是创建一个NestedInteger里面嵌套这Integer或者list。题解一:class Solution: def deserialize(self, s: str) -> NestedInteger: #思路:遇到[,入栈...原创 2020-01-11 21:02:12 · 201 阅读 · 0 评论 -
227.基本计算器Ⅱ
难度:中等题目描述:思路总结:最近这几道加减乘除括号题搞的我是晕头转向,不知所云。等做完这几天的题,需要好好总结一下。题解一:class Solution: def calculate(self, s: str) -> int: #思路:先算乘除,后算加减 stack = [] pre = 0 i = 0 ...原创 2020-01-10 21:35:26 · 359 阅读 · 0 评论 -
224.基本计算器
难度:困难题目描述:思路总结:这道题解不出的本质原因就是对这种类型的题,栈的作用本质还没理解透彻。比如,当左括号入栈,入的是什么;当遇到右括号,出栈的是什么?出栈以后怎么操作。有这些问题困扰,这种题用栈解法就永远不会得到解决。题解一:(naive)class Solution: def calculate(self, s: str) -> int: #Too...原创 2020-01-10 10:57:09 · 213 阅读 · 0 评论