自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

田航语

从简单开始,需要耐心,注重细节

  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 剑指offer 数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路:使用使用大小堆class Solution { priority_queue, less > p;    priority_queue, greater > q;

2017-04-25 21:27:09 320

原创 剑指offer 二叉搜索树的第k个结点

题目描述给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。思路:递归实现/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int

2017-04-25 17:03:07 221

原创 剑指offer 序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树思路:使用递归实现,序列化,如果为空,序列化为‘#’ 是节点值‘, 反序列化,如果是‘#’返回为空,如果是‘,’,转换为对应节点值。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;

2017-04-24 15:39:08 272

原创 剑指offer 把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路:按层次遍历,使用一个队列。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(

2017-04-24 09:59:55 260

原创 剑指offer 对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:递归做法,设p,q分别为左右子树,p,q的值相等,对称条件即为:p的左子树和q的右子树对称,p的右子树和q的左子树对称。/*struct TreeNode { int val; struct TreeNode *left;

2017-04-23 15:44:46 729

原创 剑指offer 二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:两类情况,一是正常的左根右顺序访问,另外一种是,没有左孩子,下一节点将会指向上一节点的根节点,或者最后为空的情况。/*struct TreeLinkNode { int val; struct Tree

2017-04-23 09:46:54 219

原创 剑指offer 删除链表中重复的结点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路1:当前节点值与下一节点值进行比较,如果重复,则直到找到不重复的节点,然后将节点添加到没有重复的开始节点之后。/*struct ListNode { int val; str

2017-04-23 08:36:01 280

原创 剑指offer 链表中环的入口结点

题目描述一个链表中包含环,请找出该链表的环的入口结点。思路:常见的方法,双指针追击问题,pFast指针每次走两步,pSlow指针每次走一步,如果pFast能够与pSlow指针相遇,则一定有环。关于证明:参考/*struct ListNode { int val; struct ListNode *next; ListNode(int x

2017-04-22 21:11:32 332

原创 剑指offer 字符流中第一个不重复的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。思路:因为字符只出现一次,称为字符流,所以有两种方法,1. 将输入流的字符保存下来,然

2017-04-21 19:03:11 192

原创 Leetcode 290. Word Pattern

Given a pattern and a string str, find if str follows the same pattern.Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.

2017-04-20 16:24:51 235

原创 剑指offer 构建乘积数组

题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。思路:先累乘法计算A[0]到A[i-1],然后计算A[i+1]到A[n-1]class Solution {public: vector multi

2017-04-19 23:22:37 279

原创 剑指offer 数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。三种思路:思路1:先排序,然后判断相邻数是否相等时间复杂度O(nlogn),空间复杂度O(1)

2017-04-18 16:55:38 233

原创 leetcode 217. Contains Duplicate

Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element

2017-04-18 16:04:31 214

原创 剑指offer 把字符串转换成整数

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0输入例子:+2147483647 1a33输出例子:2147483647 0思路:逐个

2017-04-18 11:38:55 313

原创 leetcode 8. String to Integer (atoi)

Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input ca

2017-04-18 11:24:29 244

原创 剑指offer 扑克牌顺子

题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12

2017-04-17 20:47:14 245

原创 剑指offer 翻转单词顺序列

题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路1:

2017-04-17 15:52:23 290

原创 leetcode 151. Reverse Words in a String

Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".Update (2015-02-12):For C programmers: Try to solve it in-place in

2017-04-17 11:57:23 279

原创 剑指offer 字符串左旋

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!思路1: 将字符串拼接起来,然后利用长度和旋转的长度相余,得到新的子字符串序列。

2017-04-16 19:52:06 374

原创 剑指offer 和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述:对应每个测试案例,输出两个数,小的先输出。思路:和前一篇一样,有序,找两个数,第一个数为start,第二个为end,start+end==sum, 两者的和class Solution {public:

2017-04-16 16:42:22 232

原创 剑指offer 和为S的连续正数序列

题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述:输出所有和为S的连续

2017-04-16 14:43:54 226

原创 剑指offer 求1+2+3+...+n

题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解法一的思路:利用构造函数里实现累加解法二的思路:使用虚函数,造两个含税,一个函数充当递归函数的角色,一个函数处理递归终止的情况。解法三的思路:c语言编程中,不能用虚函数,用函数指针来模拟还是可以的。解法四的思

2017-04-16 13:55:18 265

原创 leetcode 155. Min Stack

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() --

2017-04-16 07:38:29 203

原创 剑指offer 数组中只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。class Solution {public: void FindNumsAppearOnce(vector data,int* num1,int *num2) { if(data.size()<2) return;

2017-04-15 15:18:22 201

原创 [贪心][DP][Ural 1203]Scientific Conference

1203. Scientific ConferenceTime limit: 1.0 secondMemory limit: 64 MBFunctioning of a scientific conference is usually divided into several simultaneous sections. For example, there may be

2017-04-14 20:20:42 272

原创 剑指offer 39.判断二叉树是否为平衡二叉树

题目题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路:如果直接使用递归遍历,会重复遍历之前的节点,更好的方法是采用后序遍历,对每个节点来说,我们都已经遍历了它的左右子树,所以边遍历边判断,最后遍历到树的根节点时,判断完毕。递归遍历:class Solution {public: bool IsBalanced_Solution(

2017-04-13 11:13:29 303

原创 剑指offer 39.二叉树的深度

题目题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL),

2017-04-12 21:35:37 195

原创 leetcode 28. Implement strStr() 实现strStr()函数

Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.class Solution {public: int strStr(string haystack, string need

2017-04-12 16:24:57 220

百度地图最新API查找附近美食

百度地图最新API查找附近美食

2016-08-12

空空如也

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

TA关注的人

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