自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 海量数据处理 - 笔记

主要参考《编程之法-面试和算法心得》一书。 目录:1.STL容器2.散列分治3.多层划分4.MapReduce5.外排序6.位图7.布隆过滤器8.Trie树9.数据库10.倒排索引11.simhash算法  ...

2019-01-18 12:02:56 193

原创 九章算法笔记 - 思路总结

上九章算法课的笔记,之前记在笔记本上,现在扫描出来便于保存,每次面试之前看着这个笔记过一遍,心里有谱一些。目录:二分搜索 Binary search...

2019-01-18 10:49:10 4443 1

原创 合并多个excel文件

经常需要汇总多张excel表格,于是有了下面这个小脚本。import osimport globimport pandas as pd# drop duplications according to parameter 'on'def merge_excel(path, id): all_data = pd.DataFrame() for f in glob.glob(...

2019-01-18 10:18:35 1075

原创 virtualenv - 创建隔离的python运行环境

笔记本安装了不同版本的多个python环境,之前常用的是python3,但是最近需要在python2.7下写代码,在安装各种包时,无论用pip还是pip3都会默认安装在python3.6下,更改默认的python环境之后也没解决。然后就发现了virtualenv,真的好用。Motivation解决不同应用需要拥有各自不同的独立的python开发环境的问题。virtualenv为应用提供隔离的p...

2019-01-17 11:01:42 239

原创 ch8 - Heap堆

支持的操作:O(logn) Add / O(logn) Remove / O(1) Min or Max (n是堆中的元素的个数)Min Heap/ Max Heap(不能同时求最大和最小)目录:1.基础知识 - 取最大/小值,插入,删除2.Heap的基本原理和具体实现2.1 基本原理2.2 具体实现2.3 基本操作 - Heapify3.相关题目3.1 ugly-...

2019-01-17 10:16:13 193

原创 ch8 - Hash哈希表

支持的操作:O(1)的插入,O(1)的查找,O(1)的删除java中hash table(线程安全,有加锁机制)、hash map(线程不安全)、hash set(只有key,没有value)的区别目录:1.hash function - (常用hash函数、open hash解决冲突需要掌握)1.2 hash-function (128 in lintcode)1.3 strs...

2019-01-17 10:16:07 159

原创 ch8 - Data Structure 数据结构

线性数据结构 - Queue、Stack、Hash树型数据结构 - Heap / Priority Queue、TreeMapBFS的主要数据结构是 QueueDFS的主要数据结构是 Stack目录:什么是数据结构1.1 分类1.2 什么是数据结构?队列 Queue2.1 基础知识2.2 相关题目 - BFS相关的题目栈 Stack3.1 ...

2019-01-17 10:15:59 134

原创 ch7 - 数组 quick select

目录:1. quick select2. kth-smallest-numbers-in-unsorted-array - 第k小的数 (401 in lintcode)3. kth-largest-element 第k大的数( 5 in lincode)4. median - 中位数 ( 80 in lincode)1. quick select(604 in lintcod...

2019-01-17 10:15:51 171

原创 线段树

目录:1.quick sort 和 merge sort 的比较2.quick sort3.merge sort1. quick sort 和 merge sort 的区别于联系1). 时间复杂度:都是构建线段树:/** * Definition of SegmentTreeNode: * class SegmentTreeNode { * public: * i...

2019-01-17 10:15:43 83

原创 策略

二分法的适用条件:时间复杂度是 O(logn)时间复杂度是O(n!)的是:全排列**时间复杂度是O(2^n):**和组合有关系,和01串的组合类似,在每个位置,选左边是0,选右边是1。一定会走到第n层才会结束,每层都是向左走,向右走,所以是有两种选择计算递归的时间复杂度:方法1: 树状图,看有多少个点,每个点被调用多少次,每个点上面的处理的时间复杂度: 有多少个点 * 每个点被看的次数 ...

2019-01-17 10:15:34 127

原创 背包问题

背包问题有三种:1. 01背包: 每件物品只能放一次2. 完全背包:每种物品可以放无限多次3. 多重背包:每件物品可以放有限次数01背包1)问题描述:**有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?(一个物品选一次)(2)递推关系式:j<w(i): V(i,j)=V(i-1,j)j>=w(i): V(i,j)...

2019-01-17 10:15:25 241

原创 leetcode-高频题题解

1. Two Sumhashmap的2-sum模板class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; if(nums.size()==0){ retur

2019-01-17 10:15:17 1515

原创 ch7 - 双指针Two Pointers

双指针的题目分为以下几类:同向双指针相向双指针Two Sum - 几乎所有Two Sum的变种Partition - Quick Select (★★★★★)- 分成两部分- 分成三部分一些你没听过的(但是面试会考的)排序算法目录:1.同向双指针 - Windows Sum(604 in lintcode)2.同向双指针 - Move Zeroes (539 in li...

2019-01-17 10:14:58 330

原创 Quick Sort & Merge Sort

两种排序均采用分治的思想:quick sort先整体有序,再局部有序。归并排序先局部有序,再整体有序。目录:quick sort 和 merge sort 的比较quick sortmerge sort1. quick sort 和 merge sort 的区别于联系1). 时间复杂度:都是O(nlogn),但是快速排序是平均O(nlogn),归并排序是最好最坏都是O(nlogn)...

2019-01-16 20:29:12 431

原创 ch6 - 数组 Array

**数组大部分的题目是偏算法的,这部分主要讲以下两类数组问题:Sorted Array - 排序数组Subarray - 子数组**目录:Merge Two Sorted Arrays(6 in lintcode)(★★★★★)Median of Two Sorted Arrays(65 in lintcode)(比较难★★★★★) quick selectMaximum ...

2019-01-16 18:15:29 229

原创 ch6 - 链表Linked List

链表大部分是偏实践的,偏算法的很少。目录:链表基础知识Reverse Nodes in k-Group (450 in linkcode)Copy List with Random Pointer (105 in linkcode)Linked List cycle (102 、103 in linkcode)Sort List (98 in linkcode)(★★★★★)me...

2019-01-16 17:46:56 204

原创 ch9 - 动态规划(下)

目录:面试中常见的动态规划类型坐标型动态规划1.1 题目 - 最小路径和(求最大最小值)1.2 题目 - 不同的路径(统计方案个数)1.3 题目 - 爬楼梯 (统计方案个数、一维坐标上的dp)1.4 题目 - jump game (是否可行、一维坐标上的dp - follow up:求最小值)1.5 题目 - 最长上升子序列 (最大最小值)序列型动态规划2.1 题目 - wor...

2019-01-16 17:14:43 338

转载 Linux终端复用神器-Tmux使用梳理

Tmux常见快捷键详见:https://www.cnblogs.com/kevingrace/p/6496899.html

2019-01-16 16:18:59 89

原创 docker使用

1.Docker概念1.1 什么是dockerdocker是一个轻量级的操作系统虚拟机容器。传统虚拟化方式在硬件层面上实现,docker在操作系统层面上实现虚拟化,直接复用本地主机的操作系统。1.2 docker引擎docker引擎是一个c/s结构的应用,主要组件见下图:Server是一个常驻进程REST API 实现了client和server间的交互协议CLI实现容器和镜像的...

2019-01-16 16:16:06 107

原创 ch9 - 动态规划(上)

目录:一道题理解动态规划 - triangle1.1 遍历的方法 - DFS:traverse1.2 遍历的方法 - DFS:divide conquer1.3 记忆化搜索 - divide conquer + Memorization1.4 动态规划 - 自顶向下、自底向上记忆化搜索的本质:动态规划什么情况下使用动态规划? 什么情况下不使用动态规划?动态规划的四要素 v...

2019-01-16 15:42:41 375

原创 ch2 - 二分搜索 Binary Search

待做:1.各大公司出现的二分搜索题目;2.两个知识点小视频;3.lintcode上相关题目;二分查找的模板:http://www.lintcode.com/zh-cn/problem/first-position-of-target/#include <vector>using namespace std; class Solution {public: /...

2019-01-16 15:17:13 114

原创 ch1-Intro to Algorithm Interview & Coding Style / strStr / subSets

待做:1.复习lintcode相关的题目-3道;2.看知识点小视频-两个;3.做课后题

2019-01-16 15:15:46 99

原创 linux常用命令积累

统计文件中的行数 - wc语法:wc [选项] 文件该命令各选项含义如下:  - c 统计字节数。  - l 统计行数。  - w 统计字数。举例:wc -l train_ec_suning.csv切分文件 - split语  法:split [–help][–version][-<行数>][-b <字节>][-C <字节>][-l <行...

2019-01-16 15:04:07 81

原创 java基础知识

1. java和c/c++的异同相同点:都是面向对象语言,都使用面向对象思想。不同点:(1).java是解释型语言,先编译成字节码,由jvm解释执行。 c++是编译型语言,编译链接后生成可执行的二进制代码。所以,java比c++慢,但java可以跨平台执行。(2).java纯面向对象语言,所有代码必须在类中实现,java语言不存在全局变量或全局函数。c++兼具面向过程和面向对象的特点,可...

2018-10-30 08:41:15 118

原创 c++ 语言特点

c++是一种静态数据类型检查的、支持多种编程范式的程序设计语言:过程化程序设计;面向对象程序设计;泛型程序设计;

2018-10-29 21:23:52 713

原创 区块链入门

区块链定义基于p2p的去中心化的新体系。

2018-10-29 21:08:37 89

原创 软件工程-需求分析

需求分析中,需要确定以下几方面的可行性:经济:成本收益分析,短期长远利益分析;技术:是否能在规定时间内完成;软件的质量如何,如时延等;社会环境:市场和政策人:是否有靠谱的人,人员如何分工,人物和人才...

2018-10-29 21:07:40 232

转载 Java语言的特点

Sun公司:“Java是一种具有 简单、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行 等特点的语言”简单:简单而高效,Java系统(编译器和解释器)所占空间不到250KB。面向对象:是纯面向对象的语言。平台无关性与可移植性:可以在不同操作系统上运行,不同操作系统的解释执行字节码文件。它既是编译型也是解释型语言。稳定性和安全性:摒弃了C++中的不安全...

2018-10-29 21:03:09 307

原创 c++ 构造函数

1. 默认构造函数如果类没有构造函数,则编译器自动产生一个默认构造函数;可以给类定义默认构造函数,即定义一个没有参数的构造函数;如果类有参数非空的构造函数,则该类没有默认构造函数。如果没有默认构造函数,则定义该类的数组会报错,如:C example[3];2. 类成员构造函数和析构函数的顺序构造函数:按基类到类自身构造函数的顺序析构函数:相反。3. 创建对象创建对象必须同时创建父...

2018-10-29 20:44:10 91

空空如也

空空如也

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

TA关注的人

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