出题:将一个数组最开始的k个(K小于数组大小N)元素照搬到数组末尾,我们称之为数组的旋转;现在有一个已经排序的数组的一个旋转,要求输出旋转数组中的最小元素,且时间复杂度小于O(N);分析:时间复杂度小于O(N)也就是不能用常规的遍历思路;可以将数组看成两个都是递增序列(假设为升序)的子数组,并且前半...
分类:
其他好文 时间:
2014-05-27 00:40:17
阅读次数:
283
【面试题033】把数组排成最小的数题目:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个。 例如输入数组{3, 32,
321},则打印出这3个数字能排成的最小数字321323。思路一: 最直观的想法是求出所有数字的全排列,然后取最小值即可, ...
分类:
其他好文 时间:
2014-05-27 00:09:21
阅读次数:
334
算法训练 最小乘积(基本型) 时间限制:1.0s 内存限制:512.0MB问题描述
给两组数,各n个。 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。 例如两组数分别为:1 3 -5和-2
4 1 那么对应乘积取和的最小值应为: (...
分类:
其他好文 时间:
2014-05-26 20:58:38
阅读次数:
356
不仅仅是DFS,还需要考虑可以走到终点。同时,需要进行预处理。至多封闭点数为起点和终点的非墙壁点的最小值。
1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7
8 ...
分类:
其他好文 时间:
2014-05-26 13:29:22
阅读次数:
286
【问题描述】有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。【输入】第一行为3个整数,分别表示a,b,n的值第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。【输出】仅一个整数,为a*b矩阵中...
分类:
其他好文 时间:
2014-05-26 13:28:49
阅读次数:
305
下面这个程序是先定义一个整型数组,然后将其中的元素反序赋值,再用冒泡排序进行排序以后用二分查找来查找其中是否有某个数,返回值为-1时表示这个数可能小于这个数组的最小值或大小这个数组的最大值,-2表示这个数比这个数组的最小值大,最大值小,但是数组中不包含这个数,代码如下:
package com.jl...
分类:
编程语言 时间:
2014-05-26 07:02:37
阅读次数:
347
Beautiful Garden
题意:x轴上放了一些树,现在要移动一些树使得所有树都等间距,问最少要移动多少棵
思路:枚举,枚举第一棵树,和另一棵树,以及中间有多少树,这样就能知道等差数列的首项和公差,然后再循环一边计算出答案,保存最小值
代码:
#include
#include
#include
#include
using namespace std;
#define...
分类:
其他好文 时间:
2014-05-26 04:28:52
阅读次数:
233
区域查询操作。
ma[i]:i区间内的最大值
mi[i]:i区间内的最小值
#include
#include
#include
#include
#include
using namespace std;
#define INF 99999999
#define lmin 1
#define rmax n
#define lson l,(l+r)/2,rt<<1
#define rson ...
分类:
其他好文 时间:
2014-05-26 04:11:41
阅读次数:
202
问题描述 给两组数,各n个。
请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。 例如两组数分别为:1 3 -5和-2 4 1
那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25输入格式 ...
分类:
其他好文 时间:
2014-05-26 01:31:03
阅读次数:
382
题意:
定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。
要求函数min、push 以及pop 的时间复杂度都是O(1)。
思路:定义两个栈,一个用来记录数据的插入和删除,一个用来存储最小值的变化
代码如下:
template
class Stack
{
public:
Stack(int len=100);
T Min();
...
分类:
其他好文 时间:
2014-05-22 23:46:32
阅读次数:
359