自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (16)
  • 收藏
  • 关注

原创 和大于S的最小子数组

给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。样例给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组。挑战如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度。class Solution

2015-09-26 15:30:31 696

原创 交叉字符串

给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。样例比如 s1 = "aabcc" s2 = "dbbca"    - 当 s3 = "aadbbcbcac",返回  true.    - 当 s3 = "aadbbbaccc", 返回 false.挑战 要求时间复杂度为O(n^2)或者更好class Solution {publi

2015-09-26 12:19:20 1250

原创 在由N个正整数的集合S中,找出最大元素C,满足C=A + B

其中A,B都是集合S中元素,请给出算法描述,代码与时间复杂度分析.int findNum(vector &S){ sort(S.begin(), S.end()); int n = S.size(); for (int i = n-1; i >= 2; i--) { int left = 0; int right = i-1;

2015-09-24 23:39:15 1479

原创 删除数字

给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。找到删除 k 个数字之后的最小正整数。N k N样例给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4返回一个字符串 "12"class Solution {public:

2015-09-24 01:34:53 533

原创 带重复元素的子集

给定一个可能具有重复数字的列表,返回其所有可能的子集样例如果S = [1,2,2],一个可能的答案为:[ [2], [1], [1,2,2], [2,2], [1,2], []]注意子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集class Solution {public:

2015-09-23 01:59:26 742

原创 最长无重复字符的子串

给定一个字符串,请找出其中无重复字符的最长子字符串。样例例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 3。对于,"bbbbb",其无重复字符的最长子字符串为"b",长度为1。挑战O(n) 时间class Solution {public: /** * @param s: a string

2015-09-20 00:58:57 296

原创 下一个排列

给定一个整数数组来表示排列,找出其之后的一个排列。样例给出排列[1,3,2,3],其下一个排列是[1,3,3,2]给出排列[4,3,2,1],其下一个排列是[1,2,3,4]注意排列中可能包含重复的整数class Solution {public: /** * @param nums: An array of integers

2015-09-16 23:15:05 369

原创 上一个排列

给定一个整数数组来表示排列,找出其上一个排列。样例给出排列[1,3,2,3],其上一个排列是[1,2,3,3]给出排列[1,2,3,4],其上一个排列是[4,3,2,1]注意排列中可能包含重复的整数class Solution {public: /** * @param nums: An array of integers

2015-09-16 22:27:23 325

原创 下一个排列

给定一个若干整数的排列,给出按正数大小进行字典序从小到大排序后的下一个排列。如果没有下一个排列,则输出字典序最小的序列。class Solution {public: /** * @param nums: a vector of integers * @return: return nothing (void), do not return anything, m

2015-09-16 01:26:34 276

原创 最小差

给定两个整数数组(第一个是数组 A,第二个是数组 B),在数组 A 中取 A[i],数组 B 中取 B[j],A[i] 和 B[j]两者的差越小越好(|A[i] - B[j]|)。返回最小差。样例给定数组 A = [3,4,6,7], B = [2,3,8,9],返回 0。挑战时间复杂度 O(n log n)class Solution {

2015-09-12 01:11:20 927

原创 排序列表转换为二分查找树

给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; *

2015-09-11 00:12:45 458

原创 装最多水的容器

给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点(i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与x 轴共同构成一个容器,以容纳最多水。样例给出[1,3,2], 最大的储水面积是2.注意容器不可倾斜。class Solution {publi

2015-09-10 23:37:27 1510

原创 落单的数 II

给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4挑战一次遍历,常数级的额外空间复杂度/*当a出现一次的时候,ones能保存a。当a出现两次的时候,twos能保存a。当a出现三次的时候,ones和twos都清零。所以,如果一个数值中所有的数都通过这

2015-09-09 23:42:12 1426

原创 复制带随机指针的链表

给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 挑战可否使用O(1)的空间/** * Definition for singly-linked list with a random pointer. * struct RandomListNode { * int label; *

2015-09-09 00:44:17 856

原创 交错正负数

给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。样例给出数组[-1, -2, -3, 4, 5, 6],重新排序之后,变成[-1, 5, -2, 4, -3, 6]或者其他任何满足要求的答案注意不需要保持正整数或者负整数原来的顺序。挑战原地完成,没有额外的空间class Solution {pu

2015-09-05 19:07:47 507

原创 乘积最大子序列

找出一个序列中乘积最大的连续子序列(至少包含一个数)。样例比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。class Solution {public: /** * @param nums: a vector of integers * @return: an integer */ int ma

2015-09-04 21:01:32 369

原创 丢失的第一个正整数

给出一个无序的正数数组,找出其中没有出现的最小正整数。样例如果给出 [1,2,0], return 3 如果给出 [3,4,-1,1], return2挑战只允许时间复杂度O(n)的算法,并且只能使用常数级别的空间。class Solution {public: /** * @param A: a vector

2015-09-04 01:32:46 698

原创 最长上升连续子序列

给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)样例给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回4.给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3,

2015-09-01 22:45:48 1373

深度探索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关注的人

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