自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 lintcode_380. 两个链表的交叉

lintcode380. 两个链表的交叉描述:请写一个程序,找到两个单链表最开始的交叉节点。样例:下列两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始交叉。 挑战...

2018-05-23 11:55:02 250

原创 lintcode_112. 删除排序链表中的重复元素

lintcode112. 删除排序链表中的重复元素描述:给定一个排序链表,删除所有重复的元素每个元素只留下一个。样例:给出 1->1->2->null,返回 1->2->null给出 1->1->2->3->3->null,返回 1->2->3->null/** * Definition for ListNode *...

2018-05-22 21:01:44 159

原创 lintcode_452. 删除链表中的元素

lintcode452. 删除链表中的元素描述:删除链表中等于给定值val的所有节点。样例:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。/** * Definition for ListNode * public class ListNode { * ...

2018-05-22 20:56:38 164

原创 lintcode_167. 链表求和

lintcode167. 链表求和描述:你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。样例:给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null/** * Definiti...

2018-05-22 11:40:32 206

原创 lintcode_165. 合并两个排序链表

lintcode165. 合并两个排序链表描述:将两个排序链表合并为一个新的排序链表样例:给出 1->3->8->11->15->null,2->null, 返回 1->2->3->8->11->15->null。//思路,两个链表都为有序,则每次比较两个链表头元素,取小的加入合并链表的新一个节点。/** * Definit...

2018-05-22 10:04:50 217

原创 lintcode_726. 验证满二叉树

lintcode726. 验证满二叉树描述:如果一棵二叉树所有节点都有零个或两个子节点, 那么这棵树为满二叉树. 反过来说, 满二叉树中不存在只有一个子节点的节点.满二叉树 1 / \ 2 3 / \ 4 5不是一棵满二叉树 1 / \ 2 3 / 4 样例:给出树 {1,2,3}, 返回 tr...

2018-05-21 17:05:31 232

原创 lintcode_469. Same Tree

lintcode469. Same Tree描述:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1 ...

2018-05-21 12:24:55 153

原创 lintcode_149. 买卖股票的最佳时机

lintcode149. 买卖股票的最佳时机描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。样例:给出一个数组样例 [3,2,3,1,2], 返回 1public class Solution { /** * @param prices: Given an integer arra...

2018-05-21 12:24:13 227

原创 lintcode_56. 两数之和

lintcode56. 两数之和描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。(tips:你可以假设只有一组答案。)样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].挑战:Either of...

2018-05-20 11:48:32 418

原创 lintcode_67. 二叉树的中序遍历

lintcode67. 二叉树的中序遍历描述:给出一棵二叉树,返回其中序遍历样例:给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].挑战:你能使用非递归算法来实现么?思路1:树采用递归很好解决问题,中序遍历为左根右/** * Definition of TreeNode: * public class TreeNode { ...

2018-05-20 11:47:42 309

原创 lintcode_102. 带环链表

lintcode102. 带环链表描述:给定一个链表,判断它是否有环。样例:给出 -21->10->4->5, tail connects to node index 1,返回 true挑战:不要使用额外的空间思路:定义两个快慢指针,快指针一次走两步,慢指针一次走一步,当链表有环时,快指针一定在某个时候追上慢指针,当快指针走完时还没有碰到慢指针,则没有环。代码如下:/** * ...

2018-05-20 11:46:51 195

原创 lintcode_420. 报数

lintcode420. 报数描述:报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:1, 11, 21, 1211, 111221, ...1 读作 "one 1" -> 11.11 读作 "two 1s" -> 21.21 读作 "one 2, then one 1" -> 1211.给定一个整数 n, 返回 第 n 个顺序。样例: 给定...

2018-05-20 11:46:04 233

原创 lintcode_35. 翻转链表

lintcode35. 翻转链表描述:翻转一个链表样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战:在原地一次翻转完成思路:i,m,n分别为链表连续的三个节点,遍历到m,将m指向i,此时链表就断开了,所以必须保存下一个节点/** * Definition for ListNode * public class L...

2018-05-20 11:45:10 181

原创 lintcode_97. 二叉树的最大深度

lintcode97. 二叉树的最大深度描述:给定一个二叉树,找出其最大深度。(二叉树的深度为根节点到最远叶子节点的距离。)样例:给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.思路:对于树而言,很容易想到递归,树的深度就等于max{左子树的深度,右子树的深度} + 1;左子树的深度又可以看做以左孩子节点为根节点,右子树的深度又可...

2018-05-20 11:44:22 263

原创 lintcode_372. Delete Node in a Linked List

lintcode372. Delete Node in a Linked List描述:给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。样例:Linked list is 1->2->3->4, and given node 3, delete the node in place 1->2->4/** * Defini...

2018-05-20 11:43:09 231

原创 C语言总结_6.函数

函数1.函数命名要恰当,顺序要合理。例如编写字符串拷贝函数str_copy,它有两个参数,不要把把参数名字起为str1 和str2数的顺序要遵循程序员的习惯。一般地,应将目的参数放在前面,源参数放在后面2.不要省略返回值的类型,如果函数没有返回值,那么应声明为void 类型。如果没有返回值,编译器则默认为函数的返回值是int类型的。3.return 语句不可返回指向“栈内存”的“指针”,因为该内存...

2018-05-14 18:20:28 241

原创 C语言总结_5.内存管理

内存管理1. 野指针2. C语言内存分配(1)代码区(text segment)。代码区指令根据程序设计流程依次执行,对于顺序指令,则只会执行一次(每个进程),如果反复,则需要使用跳转指令,如果进行递归,则需要借助栈来实现。代码区的指令中包括操作码和要操作的对象(或对象地址引用)。如果是立即数(即具体的数值,如5),将直接包含在代码中;如果是局部数据,将在栈区分配空间,然后引用该数据地址;如果是...

2018-05-14 18:20:02 136

原创 C语言总结_4.指针和数组

指针和数组 指针就是指针,指针变量在 32 位系统下,永远占 4 个 byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。 数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,但不能存函数。指针在 32 位系统下,不管什么样的指针类型,其大小都为 4byte。int *p = NULL;这句...

2018-05-14 18:18:56 250

原创 C语言总结_3.预处理

预处理define 宏定义 tips: 1.反斜杠作为接续符时,在本行其后面不能再有任何字符,空格都不行。 2.定义宏的时候一定要注意什么时候该用空格。 3.用 define 宏定义表达式不要吝啬括号,因为表达式是直接替换。 4.用宏开始或结束一段注释是不行的,因为注释先于预处理指令被处理。文件包含文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译...

2018-05-14 18:18:01 130

原创 C语言总结_2.符号

符号注释1.注释不可以嵌套,因为/总是与离它最近的/匹配。2.编译器预处理时会将注释剔除,用空格代替原来的注释。3.只要斜杠( /)和星号( *)之间没有空格,都会被当作注释的开始。4.注释的位置应与被描述的代码相邻,可以与语句在同一行,也可以在上行,但不可放在下方。接续符和转义符1.C 语言里以反斜杠( \)表示断行。编译器会将反斜杠剔除掉,跟在反斜杠后面的字符动接续到前一行。但是注意:反斜杠之...

2018-05-14 18:17:08 265

原创 面试中的算法

面试中的算法1.卡特兰数问题Catalan数的定义:令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + … + h(n-1)h(0) (n>=2)递推式可表示为:h(n)=h(n-1)*(4*n-2)/(n+1);递推关系的解为:h(n)=C(2n,n)/(n+1) (n=0,1,2,…)应用:1.买票找...

2018-05-14 18:13:06 799

空空如也

空空如也

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

TA关注的人

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