自定义博客皮肤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)
  • 资源 (16)
  • 收藏
  • 关注

原创 线段树查询 II

对于一个数组,我们可以对其建立一棵 线段树, 每个结点存储一个额外的值 count 来代表这个结点所指代的数组区间内的元素个数. (数组中并不一定每个位置上都有元素)实现一个 query 的方法,该方法接受三个参数 root, start 和 end, 分别代表线段树的根节点和需要查询的区间,找到数组中在区间[start, end]内的元素个数。样例对于数组 [0, 空,2

2015-10-29 00:57:31 519

原创 线段树的查询

对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。为SegmentTree设计一个 query 的方法,接受3个参数root, start和end,线段树root所代表的数组中子区间[start, end]内的最大值。样例对于数组 [1, 4, 2,

2015-10-28 23:40:07 404

原创 线段树的构造

线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值:根节点的 start 和 end 由 build 方法所给出。对于节点 A 的左儿子,有 start=A.left, end=(A.left + A.right) / 2。对于节点 A 的右儿子,有 start=(A.left + A.righ

2015-10-28 23:09:31 370

原创 将表达式转换为波兰表达式

给定一个表达式字符串数组,返回该表达式的波兰表达式。(即去掉括号)样例对于 [(5 − 6) * 7] 的表达式(该表达式可表示为["(", "5", "−", "6", ")", "*", "7"]),其对应的波兰表达式为 [* - 5 6 7](其返回的数值为["*", "−", "5", "6", "7"])。class Solution {public:

2015-10-26 23:19:11 1190

原创 将表达式转换为逆波兰表达式

给定一个表达式字符串数组,返回该表达式的逆波兰表达式(即去掉括号)。样例对于 [3 - 4 + 5]的表达式(该表达式可表示为["3", "-", "4", "+", "5"]),返回 [3 4 - 5 +](该表达式可表示为 ["3", "4", "-", "5", "+"])。class Solution {public: /** * @para

2015-10-26 22:32:49 3353

原创 回文链表

设计一种方式检查一个链表是否为回文链表。样例1->2->1 就是一个回文链表。挑战O(n)的时间和O(1)的额外空间。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode

2015-10-22 23:17:59 280

原创 Flatten Binary Tree to Linked List

latten a binary tree to a fake "linked list" in pre-order traversal.Here we use the right pointer in TreeNode as the next pointer in ListNode.样例 1 \ 1

2015-10-19 23:29:47 301

原创 Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head.Given 1->2->3->4, you should return the list as2->1->4->3.挑战Your algorithm should use only constant space.

2015-10-18 18:08:08 242

原创 Remove Linked List Elements

Remove all elements from a linked list of integers that have value val.样例Given 1->2->3->3->4->5->3, val = 3, you should return the list as 1->2->4->5/** * Definition for singly-linked lis

2015-10-18 17:30:01 383

原创 二叉查找树迭代器

设计实现一个带有下列属性的二叉查找树的迭代器:元素按照递增的顺序被访问(比如中序遍历)next()和hasNext()的询问操作要求均摊时间复杂度是O(1)样例对于下列二叉查找树,使用迭代器进行中序遍历的结果为 [1, 6, 10, 11, 12] 10 / \1 11 \ \ 6 12挑战

2015-10-17 21:39:09 525 1

原创 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 as it is

2015-10-16 23:58:34 319

原创 电话号码的字母组合

给一个数字字符串,每个数字代表一个字母,请返回其所有可能的字母组合。下图的手机按键图,就表示了每个数字可以代表的字母。 样例给定 "23"返回 ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]注意以上的答案是按照词典编撰顺序进行输出的,不过,在做本题时,你也可以任意选择你喜欢的输出顺序。class So

2015-10-15 23:37:57 2291

原创 删除二叉查找树的节点

给定一棵具有不同节点值的二叉查找树,删除树中与给定值相同的节点。如果树中没有相同值的节点,就不做任何处理。你应该保证处理之后的树仍是二叉查找树。样例给出如下二叉查找树:          5       /    \    3          6 /    \2       4删除节点3之后,你可以返回:          5       /  

2015-10-15 22:15:08 422

原创 Post Office Problem

On one line there are n houses. Give you an array of integer means the the position of each house. Now you need to pick k position to build k post office, so that the sum distance of each house to the

2015-10-14 23:23:13 825 1

原创 k数和

给定n个不同的正整数,整数k(k 在这n个数里面找出K个数,使得这K个数的和等于目标数字,求问有多少种方案?样例给出[1,2,3,4],k=2, target=5,[1,4] and [2,3]是2个符合要求的方案class Solution {public: /** * @param A: an integer array. * @par

2015-10-12 22:39:35 673

原创 最大子数组差

给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大。返回这个最大的差值。样例给出数组[1, 2, -3, 1],返回 6注意子数组最少包含一个数挑战 时间复杂度为O(n),空间复杂度为O(n)class Solution {public: /** * @

2015-10-09 23:03:02 474

原创 最长连续序列

给定一个未排序的整数数组,找出最长连续序列的长度。样例给出数组[100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4],返回所求长度 4说明 要求你的算法复杂度为O(n)class Solution {public: /** * @param nums: A list of integers *

2015-10-09 21:23:31 339

原创 最大子数组 II

给定一个整数数组,找出两个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。样例给出数组[1, 3, -1, 2, -1, 2],这两个子数组分别为[1, 3]和[2, -1, 2]或者[1, 3, -1, 2]和[2],它们的最大和都是7注意子数组最少包含一个数挑战 要求时间复杂度为O(

2015-10-08 23:07:28 1339

原创 数飞机

给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机?样例对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]], 返回3。注意如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。/** * @param intervals: An interval array

2015-10-06 23:54:21 800

原创 背包问题 II

给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?样例对于物品体积[2, 3, 5, 7]和对应的价值[1, 5, 2, 4], 假设背包大小为10的话,最大能够装入的价值为9。注意A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。class Solut...

2015-10-06 21:48:02 348

原创 背包问题1

在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]样例如果有4个物品[2, 3, 5, 7]如果背包的大小为11,可以选择[2, 3, 5]装入背包,最多可以装满10的空间。如果背包的大小为12,可以选择[2, 3, 7]装入背包,最多可以装满12的空间。函数需要返回最多能装满的空间大小。注意你不可以将物品进行切割...

2015-10-06 00:47:11 879

原创 更新二进制位

给出两个32位的整数N和M,以及两个二进制位的位置i和j。写一个方法来使得N中的第i到j位等于M(M会是N中从第i为开始到第j位的子串)样例给出N = (10000000000)2,M = (10101)2, i = 2, j = 6返回 N = (10001010100)2挑战最少的操作次数是多少?class Solution {

2015-10-04 23:02:18 848

原创 硬币排成线 III

有 n 个硬币排成一条线,每一枚硬币有不同的价值。两个参赛者轮流从任意一边取一枚硬币,知道没有硬币为止。计算拿到的硬币总价值,价值最高的获胜。请判定 第一个玩家 是输还是赢?样例给定数组 A = [3,2,2], 返回 true.给定数组 A = [1,2,4], 返回 true.给定数组 A = [1,20,4], 返回 false.class Solutio

2015-10-04 01:18:06 501

原创 攀爬字符串

给定一个字符串 S1,将其递归地分割成两个非空子字符串,从而将其表示为二叉树。下面是s1 = "great"的一个可能表达: great / \ gr eat / \ / \g r e at / \ a t在攀爬字符串的过程中,我们可以选择其中任意一个非叶节点,然后交换该节点的两个

2015-10-03 21:37:32 791

原创 重哈希

哈希表容量的大小在一开始是不确定的。如果哈希表存储的元素太多(如超过容量的十分之一),我们应该将哈希表容量扩大一倍,并将所有的哈希值重新安排。假设你有如下一哈希表:size=3, capacity=4[null, 21, 14, null] ↓ ↓ 9 null ↓ null哈希函数为:int hashcod

2015-10-03 14:29:39 893

原创 硬币排成线 II

有 n 个不同价值的硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。计算两个人分别拿到的硬币总价值,价值高的人获胜。请判定 第一个玩家 是输还是赢?样例给定数组 A = [1,2,2], 返回 true.给定数组 A = [1,2,4], 返回 false.class Solution {public: /**

2015-10-03 02:11:17 820

原创 硬币排成线

有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?样例n = 1, 返回 true.n = 2, 返回 true.n = 3, 返回 false.n = 4, 返回 true.n = 5, 返回 true.挑战O(1) 时间复

2015-10-02 22:46:22 634

原创 搜索二维矩阵 II

写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。样例考虑下列矩阵:[    [1, 3, 5, 7],    [2, 4, 7, 8],    [3, 5, 9, 10]]给出target =

2015-10-02 00:03:57 516

深度探索C++对象模型(清晰版)

向具备多年C++开发经验的行家推荐本书,如果你想深入理解C++底层机制。

2011-04-15

exceptional c++ style中文版 pdf 刘未鹏译

C++大师 Herb Scutter通过40个编程问题,使读者不仅知其然,更要知其所以然,帮助程序设计人员在软件中寻找恰到好处的折中。适合中高级C++程序员阅读。

2010-09-26

PHP技术内幕中文版 pdf--黑皮书系列

全面认识网站编程和PHP。编写WINDOWS和UNIX中可靠而高效的代码。

2010-09-20

设计模式中文版pdf

不错的设计模式教程。讲解清晰,而且很全面。

2010-09-20

数据结构C语言版pdf 清华严蔚敏著

数据结构 c语言版 清华大学 严蔚敏著 大部分高校采用的数据结构教材

2010-09-20

编译原理 陈火旺著

陈火旺主编 编译原理教材 高等学校电子信息类规划教材

2010-09-17

计算机程序的构造和解释原书第2版pdf

每一位严肃的计算机科学家都应该阅读这本书。适合所有希望深刻理解计算机科学的人们。

2010-08-26

C语言深度解剖 解开程序员面试笔试的秘密

一个资深软件工程师的作品,内容讲解较透彻,一定程度弥补了教材中未深入的内容。

2010-08-25

编程珠玑第二版pdf中文

近二十年来众多大师级程序员一致推崇的作品

2010-08-13

UML参考手册pdf中文版

UML参考手册,讲述UML基本概念,为UML的深入理解提供一个起点.

2010-08-13

空空如也

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

TA关注的人

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