题目来源:《剑指offer》面试题31、《编程之美》2.14 题目:输入一个整形数组,数组里有正数也有负数。数组中一个或连续多个整数组成一个子数组。求所有子数组的和的最大值 解法一:假设id代表自序列的一个起点,j代表终点。如果a[i]是负的,那么它不可能代表最优子序列的起点,因为任何包含a...
分类:
编程语言 时间:
2015-09-03 23:14:50
阅读次数:
214
leetcode刷题整理:1——Two Sum(哈希表hashtable,map)2——Add Two Numbers(链表)3——Longest Substring Without Repeating Characters(set,哈希表,两个指针)9——Palindrome Number (数学...
分类:
其他好文 时间:
2015-09-03 20:18:49
阅读次数:
190
题目来源《剑指offer》面试题29、《编程之美》2.3 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. 解法1:数组中有一个数字出现的次数超过了...
分类:
编程语言 时间:
2015-09-03 19:05:47
阅读次数:
163
编程之美有一道考察多种排序的题目,题目如下:
有一个长度为N的无序数组,假定其中的每一个元素都各不相等,求其中最大的K个数。
作者对于此题目结合各种排序算法给出了五种解法思路。
解法一:
使用快速排序或堆排序对它们元素进行排序,整个排序的时间复杂度为O(N*log2{log}_2N),然后取出前K个,时间复杂度为O(K),总时间复杂度O(N*log2{log}_2N)+O(K)=O(N*l...
分类:
其他好文 时间:
2015-09-02 02:06:37
阅读次数:
277
标题来源:编程之美2.18有一个无序的,元素个数为2n的正整数的数组,要求:怎样能把这个数组切割为元素个数为n的两个数组,使得两个子数组的和尽量接近。解析:由于两个子数组的和是一定的,等于整个数组的和。如今要求使得两个字数组的和尽量的接近,也就意味着要从当中选出n个数使得这n个数的和尽可能的接近su...
分类:
编程语言 时间:
2015-09-01 21:35:14
阅读次数:
176
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.
For example:
Given n = 13,
Return 6, because digit 1 occurred in the followin...
分类:
其他好文 时间:
2015-08-29 18:50:54
阅读次数:
247
#include
using namespace std;
//二叉树 节点结构
typedef struct TNODE_
{
int data;
struct TNODE_*left;
struct TNODE_*right;
}TNode;
//获取树的高度=路径+1(最长路径经过的边数+1)
int GetLRDistance(TNode*t)
{
int len=0;
if(t...
分类:
其他好文 时间:
2015-08-27 21:19:46
阅读次数:
152
如果我们把二叉树视为一个图,父子节点之间的连线视为双向的,我们姑且定义为“举例”为两节点之间边的个数。写一个程序求一颗二叉树中相距最远的两个节点之间的距离(《编程之美》3.8)思路:如果两个节点相距最远,一定是两个叶子节点,或者是一个叶子节点到它的根节点。 根据相距最远的两个节点一定是叶子节...
分类:
编程语言 时间:
2015-08-19 00:11:29
阅读次数:
222
#1156 : 彩色的树时间限制:2000ms单点时限:1000ms内存限制:256MB描述给定一棵n个节点的树,节点编号为1, 2, …, n。树中有n - 1条边,任意两个节点间恰好有一条路径。这是一棵彩色的树,每个节点恰好可以染一种颜色。初始时,所有节点的颜色都为0。现在需要实现两种操作:1....
分类:
其他好文 时间:
2015-08-17 21:28:49
阅读次数:
251
题目描述:设计一个算法,把一个含有N个元素的数组循环右移K位,要求算法的时间复杂度位O(Log2N)O(Log_2N),且只允许使用两个附加变量。
什么意思呢,就是说如果输入序列为:abcd1234,右移2位即变为34abcd12。唯一的要求就是使用两个附加变量。
其实这道题编程珠玑上面也出现过,书中给出的一种符合题意的解法是巧妙地进行翻转。以把abcd1234右移4位为例:第一步:翻转1234...
分类:
编程语言 时间:
2015-08-14 10:00:05
阅读次数:
131