- 博客(36)
- 收藏
- 关注
原创 Leetcode: word-break
题目一:word-breakGiven a strings and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.For example, givens ="leet
2017-03-23 22:47:44
194
原创 Leetcode: max-points-on-a-line
题目:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.思路:1.每个点与其他点进行比较2.用Map来保存斜率,两个点之间有三种关系(1)重复,用dup来保存重复数量(2)垂直,用vcnt来保存垂直数量(3)倾斜,用
2017-03-21 17:33:34
208
原创 剑指offer: 二叉树的下一个结点
题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:中序遍历过程:代码:/*public class TreeLinkNode{ public int val; public TreeLinkNode left; public TreeLin
2017-03-21 15:23:23
292
原创 剑指offer: 删除链表中重复的结点
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:1.用p表示当前节点,用pre表示之前一个节点2.若p 与p.next节点值相等,则p向前移动一位;3.若p与p.next节点不相等,分两种情况考虑(1)p与pre相邻,说明没有遇到重复,
2017-03-20 21:58:56
282
原创 剑指offer: 和为某数相关数组问题
题目一:和为S的连续正数序列小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描
2017-03-20 12:55:33
262
原创 Leetcode: 股票买卖大全
题目一:best-time-to-buy-and-sell-stockSay you have an array for which the ith element is the price of a given stock on dayi.If you were only permitted to complete at most one transaction (ie, buy
2017-03-19 23:43:37
399
原创 剑指offer: 平衡二叉树
题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路:1.创建辅助方法,用于计算树的深度。2.判断当前节点左右子树深度是否满足,然后递归左右子树。代码:/*public class TreeNode{ public int val; public TreeNode left; public TreeNode right; publ
2017-03-19 15:49:12
217
原创 剑指offer: 数组中的逆序对
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size 对于%75的数据,size 对于%100的数据,size输入例子:1,2,3,4,5
2017-03-19 15:19:31
249
原创 剑指offer: 丑数
题目:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路:1.下一个丑数必定由有数组中的某一个丑数A * 2, B * 3, C * 5 的中的最小值得来。2.用数组保存丑数代码:class Solution{ public
2017-03-19 13:14:48
207
原创 剑指offer: 把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:1.将数组进行排序2.排序函数为两个数的字符串的拼接代码:class Solution{ public string PrintMinNumber(int[] numbers
2017-03-19 12:46:35
178
原创 剑指offer: 二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:1.利用递归思想,分别寻找当前节点的左边节点和右边节点2.寻找当前节点的左边节点时,最后的连接节点是当前节点左子节点树的最右节点3.最后若当前节点左节点存在,则返回左节点,否则返回当前节点代码:/*public class Tree
2017-03-18 19:14:22
154
原创 剑指offer: 复杂链表的复制
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路:1.不考虑随机指针,复制节点并插入其后方位置2.用两个指针同时遍历,复制随机指针3.借助一个节点变量,将链表拆成两个代码:/*public cl
2017-03-18 18:32:26
203
原创 剑指offer: 二叉树中和为某一值的路径
题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:1.典型的回溯法,用递归进行探索。2.传递的参数包括:root //当前节点. ,expectNumber //期望值 ,sum//当前总数, list //当前遍历过的节点, ret //保存所有路径的容器3.只有当满足期
2017-03-18 14:52:31
172
原创 剑指offer: 二叉搜索树的后序遍历序列
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:1.二叉搜索树的后序遍历特点是前一段数小于最后一个数,后一段数大于最后一个数。2.设置i=0从左到有遍历,判断是否能到达尾部3.尾部n每次向右移动一个距离代码:class Solution{ public boo
2017-03-18 14:16:11
184
原创 剑指offer: 栈的压入、弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:1.创建一个栈来存储出栈入栈过程中的元素2.每次入栈一个元素,
2017-03-18 13:47:25
201
原创 剑指offer: 顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:1.声明一个start来记录左上角的坐标2.循环次数是行列数较小的一半3.每次转向时应该检查边界
2017-03-09 20:50:03
173
原创 剑指offer: 树的子结构
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:1.创建一个方法用于判定当前节点是不是子树,递归思路2.主函数先判定当前节点是否为子树,不是则依次比较左右子树代码:/*public class TreeNode{ public int val; public TreeNode le
2017-03-09 19:34:42
232
原创 剑指offer: 反转链表
题目:输入一个链表,反转链表后,输出链表的所有元素。思路:1.声明变量pre保存当前调整后的下一个节点2.声明变量next保存当前节点下一个节点3.反转当前节点的指向,并向后移动代码:/*public class ListNode{ public int val; public ListNode next; public
2017-03-09 19:01:15
199
原创 剑指offer: 调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:1.声明变量move来记录遇到过的偶数个数2.遇到偶数时move++3.遇到奇数从当前开始依次交换位置move次代码:class Solution{ pu
2017-03-09 18:38:31
168
转载 SQL 优化经验总结
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指
2017-02-27 21:51:49
188
原创 SQL数据库中的范式
范式:是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几
2017-02-27 21:47:38
191
原创 数据库事务的四大特性及隔离级别
1.事务的四大特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一
2017-02-27 21:33:48
209
转载 海量数据处理问题之面试题
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为,这里漏写个了a1)中。这样每个小文件的大
2017-02-27 21:15:15
206
转载 海量数据处理问题之Bit-Map详解
什么是Bit-map 所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么我们来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit-ma
2017-02-27 21:10:10
271
转载 海量数据处理问题之双层桶划分
双层桶划分什么是双层桶事实上,与其说双层桶划分是一种数据结构,不如说它是一种算法设计思想。面对一堆大量的数据我们无法处理的时候,我们可以将其分成一个个小的单元,然后根据一定的策略来处理这些小单元,从而达到目的。适用范围 第k大,中位数,不重复或重复的数字基本原理及要点 因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后
2017-02-27 21:08:31
508
原创 算法: 字符串回文大全
回文:把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。1.题目:给定一个字符串,问是否能通过添加一个字母将其变为回文串。输入描述:一行一个由小写字母构成的字符串,字符串长度小于等于10。输出描述:输出答案(YES\NO).输入例子:coco输出例子:YES思路:1.既然增加一个字符就是回文,那么同样
2017-02-23 20:50:46
717
原创 算法: 回溯法大全
回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。1.题目:Given two integers n and k, return all possible combinations of kn
2017-02-22 21:49:21
426
原创 算法: 动态规划大全
1.题目:对于一个字符串,请设计一个高效算法,找到字符串的最长无重复字符的子串长度。给定一个字符串A及它的长度n,请返回它的最长无重复字符子串长度。保证A中字符全部为小写英文字符,且长度小于等于500。测试样例:"aabcb",5返回:3 思路:1.建立一个HashMap(可用数组模拟)map,变量pre表示当前位置上一个元素结尾时的能向左
2017-02-21 23:27:54
373
原创 Leetcode: longest-substring-without-repeating-characters
题目:Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is
2017-02-19 21:32:40
172
原创 Leetcode: longest-palindromic-substring
题目:Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.思路:1.
2017-02-17 23:22:04
169
原创 Leetcode: zigzag-conversion
题目:The string"PAYPALISHIRING"is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L
2017-02-17 22:42:51
159
原创 Leetcode: generate-parentheses
问题:Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:"((()))", "(()())", "(())()", "()(()
2017-02-16 20:49:47
262
转载 操作系统内存管理——分区、页式、段式管理
计算存储的层次结构:当前技术没有能够提供这样的存储器,因此大部分的计算机都有一个存储器层次结构,即少量的非常快速、昂贵、易变的高速缓存(cache);若干兆字节的中等速度、中等价格、易变的主存储器(RAM);数百兆或数千兆的低速、廉价、不易变的磁盘。这些资源的合理使用与否直接关系着系统的效率。 1. 内存管理方法
2017-02-16 16:47:37
640
原创 Leetcode: reverse-nodes-in-k-group
题目:Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.If the number of nodes is not a multiple of k then left-out nodes in the end should remain
2017-02-15 23:27:10
319
原创 HTTP基本知识
1HTTP简介超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构
2017-02-12 15:16:47
508
原创 Leetcode: trapping-rain-water
题目:Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.For example, Given[0,1,0,2,1,0,1,3,2,
2017-02-10 23:15:34
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人