自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大数据处理

方法一:hash映射+hash统计+堆、快速排序、归并排序方法二:bloom filter(不要求100%的正确率)/Bitmap(通常用于判断数据是否存在,适合数据状态少的情况)方法三:trie树、数据库、倒排索引方法四:分布式处理Hadoop+MapReduce(交给不同的机器处理,数据划分,结果归约) 具体可参见:大数据量的五种处理方式题目:1. 海量日志数据,提取出某日...

2018-02-27 21:48:28 673 1

原创 基础知识之数据库篇

增:add插入: insert into tname(field1, field2) values(value1, value2)删除表:drop table tname删除数据:delete from tname更新:update tname set field1=value1, field2=value2 where 条件表达式查:select * from tname创建表: cr

2018-02-27 10:05:37 866

原创 面试基础知识之LINUX篇

1. 硬链接和软连接区别 * 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块 * 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。 2. kill用法,某个进程杀不掉的原因(进入内核态,忽略kill信号) * 先用ps查找进程:ps -ef|grep vim * 列出所有信号名称: kill -l

2018-02-26 16:30:58 10561

原创 面试基础知识之计算机网络

一、计算机网络 基础部分 1. TCP报头格式 TCP协议头最少20个字节,包括以下的区域: TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是标示报问的返回地址。 TCP目的端口(Destination port):16位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。 TCP序列号(序列码,Se

2018-02-26 15:28:36 4599 1

原创 get和post的区别

GET和POST是HTTP请求的两种基本方法,HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。最直观的区别是:GET把参数包含在URL中,POST通过request body传递参数。数据量:GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般默认为不受限制。安全性:传统的比较都是觉得GET安全性非常低,POST安全性较高。因为GET请求的数据会暴露在地址栏

2018-02-09 22:11:03 532

原创 《技术之瞳》——计算机网络篇

ISO的七层网络协议 TCP三次握手四次挥手协议(面向连接的可靠传输层协议) TCP协议的缓冲区BPD问题 TCP协议如何实现可靠传输? 抽象过程如下: 1.发送端把待发送的数据存入发送缓冲区 2.网络设备发送数据 3.接收端接收到数据,同时返回一个确认收到数据的ACK信息 4.发送端收到ACK信息之后确认数据已经被对方收到,缓冲区的已确认数据删除 也就是说缓冲区中等待确认的数

2018-01-21 17:15:34 1040

原创 输入URL到整个页面显示发生了什么

从输入URL到页面加载发生了什么https://www.cnblogs.com/engeng/articles/5943382.html总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束具体过程DNS解析DNS解析的过程就是寻找哪台机

2018-01-17 09:50:56 334

原创 HTTP与HTTPS的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输

2018-01-16 16:01:20 559

原创 软件测试常见概念

1.什么是软件测试?软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。2.软件测试的目的?测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错

2018-01-05 10:17:23 387

原创 [automation test]--system log

自动化测试的case界面如下: 以下给出测试界面的design。Covered cases 1.UI: 2.Func: 使用xmind设计测试流程如下: NEW:alertlog & auditlog Keyword: 【UI】 1.Setting 1.1 protocol (TCP/UDP/SSL) 1.2 format (C...

2017-12-21 10:46:43 1224

原创 操作系统要点

操作系统基本特性 并发共享虚拟异步操作系统内容分为那几块? 什么叫做虚拟内存,和主存的关系如何? 操作系统主要组成部分有: 进程和线程的管理,存储管理,设备管理,文件管理。 虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小为4k,物理内存也被分页,每个页大小也为4k,这样虚拟文件和物理内存页就可以对应,实际上虚拟内存就是用于物理内存的临时存放的磁盘空间。进程与线程 进程

2017-12-09 16:26:44 371

原创 [leetcode]#190. Reverse Bits

题目翻译翻转一个给定的32位无符号数的位。比如,给定输入整数43261596(二进制表示为00000010100101000001111010011100),返回964176192(二进制表示为00111001011110000010100101000000)。 进一步:如果该函数被多次调用,你该如何优化它?思路方法思路一先将输入转换成2进制字符串,再翻转并扩充到32位,再将此32位的二进

2017-11-29 17:31:13 227

原创 [leetcode]#189. Rotate Array

题目大意: 将包含n个元素的数组向右旋转k步 例如,数组[1,2,3,4,5,6,7]包含元素个数n = 7,向右旋转k = 3步,得到[5,6,7,1,2,3,4]。 至少有3种不同的解题方法,最好使用O(1)的额外空间,“就地”完成数组旋转。时间复杂度O(n),空间复杂度O(n)class Solution(object): def rotate(self, nums, k):

2017-11-29 13:50:10 254

原创 [leetcode]#172. Factorial Trailing Zeroes

题目翻译 给定一个整数n,返回n!尾部0的个数。你的解法的时间复杂度要控制在O(logn)。思路方法 所有的尾部的0可以看做都是2*5得来的,所以通过计算所有的因子中2和5的个数就可以知道尾部0的个数。实际上,2的个数肯定是足够的,所以只需计算5的个数即可。 要注意,25=5*5是有两个5的因子;125=5*5*5有3个5的因子。比如,计算135!末尾0的个数。 首先135/5 = 2

2017-11-28 15:44:49 223

原创 [leetcode]#169. Majority Element

题目翻译 给定一个大小为n的数组,找到其中的“多数元素”。多数元素指的是出现次数超过 ⌊ n/2 ⌋ 次的元素。 假定数组非空,且给定的数组中一定存在多数元素。思路方法 (Sort)先对数组进行排序,因为多数元素一定存在,且个数超过总个数的一半,那么排序后最中间的那个元素一定是多数元素。class Solution(object): def majorityElement(sel

2017-11-28 15:40:38 211

原创 [leetcode]#168. Excel Sheet Column Title

题目翻译 给定一个正整数,返回其在Excel表格中作为列序号时对应的列标题。比如: 1 -> A 2 -> B 3 -> C … 26 -> Z 27 -> AA 28 -> AB思路方法 首先,我们要知道Excel里这个对应关系是什么样的。从A-Z对应1-26,当列标题进一位变成AA时,列对应的数字变成27。所以这个题本质上是一个10进制转26进制的问题,不过A对

2017-11-28 15:30:48 238

原创 [leetcode]#167. Two Sum II - Input array is sorted

题目:Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2思路方法注意题目说了两个重要条件:1,有序数组;2,有唯一解。所以解的两个数一定都是数组中唯一存在的数。思路一利用两个指针从数组的两侧开始向中间移动,寻找第一对和为target的两个数即为所求。class Solution(object): d

2017-11-28 15:19:37 202

原创 [leetcode]#160. Intersection of Two Linked Lists

题目:写一个程序,找到两个单链表交汇的节点。比如,下面两个单链表交汇节点是c1:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3注意:1,如果两个单链表不交,返回nul

2017-11-28 09:17:39 194

原创 [leetcode]#121+122. Best Time to Buy and Sell Stock

我们先拿出来前三道题,因为他们都是array中的题目。这是leetcode种经典的一系列题,涉及到动态规划和贪心算法。按照我的理解,贪心是满足当前条件的最优值我们就将它最为最优解,也就是大家说的局部最优值,而动态规划是要记录下来达到当前最优解的所有途径,由局部一步步得到全局最优。这几道题都是给你一个股票每日价格表,让你得到不同条件下能挣的最多的钱。121题是只允许买卖一次,要保证卖的时间晚于买的

2017-11-27 20:48:45 241

原创 [leetcode]#119. Pascal's Triangle II

跟上一题一样,只是返回的值是指定的某一行 For example, given k = 3, Return [1,3,3,1].class Solution: # @return a list of integers def getRow(self, rowIndex): rownum=rowIndex+1 currow=[1]

2017-11-27 20:22:37 184

原创 [leetcode]#118. Pascal's Triangle

题意:每一层的第i个位置,等于上一层第i-1与第i个位置之和。[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] class Solution: # @return a list of lists of integers def generate(self, numRows): ret = []

2017-11-27 20:14:20 120

原创 [leetcode]#141. Linked List Cycle

题目翻译 给定一个链表,判断其中是否有环。 进一步:你能在不使用额外空间的情况下解决吗?倘若不考虑进一步的要求。顺序遍历链表所有节点,若出现重复访问则说明有环,否则说明无环。这里注意不能用list保存访问过的节点,查找太慢了;用dict保存还要考虑到键不能是对象,所以这里采取以对象的id作为键的做法# Definition for singly-linked list.# class Li

2017-11-27 13:43:40 353

原创 [leetcode]#112. Path Sum

判断是否存在一条路径,从root-leaf的路径,使得路径的value的和等于sum# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.r

2017-11-23 20:27:54 167

原创 [leetcode]#203. Remove Linked List Elements

题目翻译 删除单链表中值为给定的val的节点。比如:给定链表 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6 和值 val = 6 ,返回 1 –> 2 –> 3 –> 4 –> 5 。思路方法 遍历所有节点,同时保留每个节点的上一个节点,当遇到节点值是val时,删除该节点。为了方便操作,定义了一个伪头节点。# Definition for singly-linked lis

2017-11-23 20:24:16 155

原创 [leetcode]#107. Binary Tree Level Order Traversal II

给定一个二叉树,返回其从下到上的层序遍历(从左到右,从下到上)。用栈来实现DFS,注意要在深搜的时候记录当前的深度。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None

2017-11-22 11:22:14 148

原创 [leetcode]#111. Minimum Depth of Binary Tree

输入一个二叉树,输出leaf节点的最小深度解题思路:分几种情况考虑:1,树为空,则为0。 2,根节点如果只存在左子树或者只存在右子树,则返回值应为左子树或者右子树的(最小深度+1)。 3,如果根节点的左子树和右子树都存在,则返回值为(左右子树的最小深度的较小值+1)。# Definition for a binary tree node# class TreeNode:# def

2017-11-22 10:19:13 140

原创 [leetcode]#10. Balanced Binary Tree

题意:判断一颗二叉树是否是平衡二叉树。解题思路:在这道题里,平衡二叉树的定义是二叉树的任意节点的两颗子树之间的高度差小于等于1。这实际上是AVL树的定义。首先要写一个计算二叉树高度的函数,二叉树的高度定义为:树为空时,高度为0。然后递归求解:树的高度 = max(左子树高度,右子树高度)+1(根节点要算上)。高度计算函数实现后,递归求解每个节点的左右子树的高度差,如果有大于1的,则return F

2017-11-22 09:38:08 208

原创 [leetcode]#136. Single Number

题意分析:   给定一个数组,每个数都出现了2次,只有一个出现了一次,找出这个数。要求时间复杂度O(n),空间复杂度O(1)。题目思路:   这道题目利用位操作。位操作的异或(^),他的其中一个属性是,n^n = 0, 0^n = n。只要将所有的数都进行异或就得到出现一次的数。class Solution(object): def singleNumber(self, nums):

2017-11-21 16:15:03 140

原创 [leetcode]#67. Add Binary

题目翻译 给定两个二进制字符串,返回它们的和(也是二进制字符串)。 比如:a = “11”,b = “1”,返回 “100”。思路方法思路一 利用Python的进制转换函数,先将两个加数转成10进制,再把和转换成二进制返回即可。虽然速度还挺快的,但这么做忽略了可能的大整数相加的细节(因为Python帮你处理了)。>>bin(10) ‘0b1010’int(‘12’,16)

2017-11-21 15:28:32 529

原创 [leetcode]#66. Plus One

题目翻译 给定一个用数组表示的非负数,对这个数加一。这个数组里的数字最高位在列表头部思路方法 这个题目有点难理解,应该举个例子的。。。大概就是,比如: 数字1234用数组表示是[1,2,3,4],加一后数组表示为[1,2,3,5];数字9999用数组表示是[9,9,9,],加一得到[1,0,0,0,0]。实际上完全不用全部数字都做判断,小于等于8的数字加一后就可以终止了。从后向前扫描数

2017-11-21 13:42:18 146

原创 [leetcode]#108. Convert Sorted Array to Binary Search Tree

题意:将一个排序好的数组转换为一颗二叉查找树,这颗二叉查找树要求是平衡的。解题思路:由于要求二叉查找树是平衡的。所以我们可以选在数组的中间那个数当树根root,然后这个数左边的数组为左子树,右边的数组为右子树,分别递归产生左右子树就可以了# Definition for a binary tree node# class TreeNode:# def __init__(self,

2017-11-21 10:53:56 130

原创 [leetcode]#104. Maximum Depth of Binary Tree

返回树的最大深度递归遍历即可# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(o

2017-11-21 10:47:01 114

原创 [leetcode]#101. Symmetric Tree

判断二叉树是否为对称的。递归,对于每个节点,检查树的左右节点值是否相等,同时判断:左节点的左子树和右节点的右子树是否对称、右节点的左子树和左节点的右子树是否对称。# Definition for a binary tree node# class TreeNode:# def __init__(self, x):# self.val = x# s

2017-11-21 09:37:29 129

原创 [leetcode]#9. Palindrome Number

判断一个整数(integer)是否是回文不允许用额外空间,所以不能将数转换成字符串来判断。实际上将原数字反转一半就可以判断是否是回文了。另外,以0结尾的非零数都不是回文。class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool

2017-11-21 09:13:23 115

原创 [leetcode]#24. Swap Nodes in Pairs

题目:给一个链表,要求将链表的奇数个节点和它后边的节点进行互换,并且不能更改节点的值(也就是不能互换节点的值),空间复杂度要求为O(1)加一个头结点,操作起来会很方便class Solution: # @param {ListNode} head # @return {ListNode} def swapPairs(self, head):

2017-11-20 21:15:23 107

原创 [leetcode]#19. Remove Nth Node From End of List

题意:删除一个单向链表的倒数第 N 个节点直接模拟,先算出节点数,再找到节点删除加一个头结点dummy,并使用双指针p1和p2。p1先向前移动n个节点,然后p1和p2同时移动,当p1.next==None时,此时p2.next指的就是需要删除的节点。class Solution: # @return a ListNode def removeNthFromEnd(sel

2017-11-20 21:02:32 107

原创 [leetcode]#70. Climbing Stairs

题目翻译 你现在在爬楼梯,爬到顶要n阶。每次你可以爬1或2阶楼梯,你有多少种不同的爬法可以到顶?其实是斐波那契数列class Solution(object): def climbStairs(self, n): """ :type n: int :rtype: int """ pre = cur = 1

2017-11-20 19:09:18 137

原创 [leetcode]#69. Sqrt(x)

题目大意: 实现函数 int sqrt(int x). 计算并返回x的平方根(整型)解题思路: 题目并不要求计算sqrt(x)的精确值,只需返回小于等于sqrt(x)的最大整数即可。二分法class Solution(object): def mySqrt(self, x): """ :type x: int :rtype: int

2017-11-20 17:25:12 124

原创 [leetcode]#58. Length of Last Word

题目翻译 给定一个字符串s,只包含大小写字母和空格字符 ’ ‘,返回该字符串中最后一个单词的长度。如果不存在最后一个单词返回0。 注意:所谓单词,是指仅由非空格字符组成的字符序列。比如,给定s= “Hello World”,返回 5。思路方法 利用Python的内置函数string.rstrip()和string.split()。先将字符串后面的空格部分删除,再按照空格字符将剩余部分分成若

2017-11-20 17:10:23 128

原创 [leetcode]#53. Maximum Subarray

题目是说,给你一串数,有正有负 要求出最大的连续子串。 其实就是标准的动态规划问题: 随着遍历这个数组,在到每一个位置的时候,弄一个局部最大L值,代表以当前位置为结尾的最大子串,比如说我遍历到第i个,那么以第i个为结尾的最大子串就是我们要求的L。 比如这个题目: -2 , 1, −3,4,−1,2,1,−5,4 位置0,L=x=-2,没得选 位置1,要以x=1为结尾的最大的,那肯

2017-11-18 15:11:01 144

空空如也

空空如也

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

TA关注的人

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