update dir
This commit is contained in:
@@ -93,9 +93,7 @@ a < f(top),把 a push 到 辅助栈中
|
||||
比如输入的push序列是[1、2、3、4、5] ,那么[4、5、3、2、1]就有可能是一个pop序列
|
||||
|
||||
因为可以有如下的push和pop序列:
|
||||
【push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop】
|
||||
|
||||
这样得到的pop序列就是【4、5、3、2、1】。
|
||||
【push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop】, 这样得到的pop序列就是【4、5、3、2、1】。
|
||||
|
||||
但序列【4、3、5、1、2】就不可能是push序列【1、2、3、4、5】的pop序列。
|
||||
|
||||
|
||||
@@ -644,40 +644,6 @@ f(n)= 1 n=1
|
||||
|
||||
////////////// 数列 ///////////////
|
||||
|
||||
输入a1,a2,...,an,b1,b2,...,bn,
|
||||
在O(n)的时间,O(1)的空间将这个序列顺序改为a1,b1,a2,b2,a3,b3,...,an,bn,
|
||||
且不需要移动,通过交换完成,只需一个交换空间。
|
||||
|
||||
例如,N=9时,第2步执行后,实际上中间位置的两边对称的4个元素基本配对,
|
||||
只需交换中间的两个元素即可,如下表所示。颜色表示每次要交换的元素,左边向右交换,右边向左交换。
|
||||
交换过程如下表所示
|
||||
交换x1,x3;交换x2,x4;再交换中间的x1,x4;交换y1,y2。
|
||||
|
||||
|
||||
|
||||
|
||||
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
|
||||
要求下排每个数都是先前上排那十个数在下排出现的次数。
|
||||
上排的十个数如下:
|
||||
|
||||
【0,1,2,3,4,5,6,7,8,9】
|
||||
|
||||
初看此题,貌似很难,10分钟过去了,可能有的人,题目都还没看懂。
|
||||
|
||||
举一个例子,
|
||||
数值: 0,1,2,3,4,5,6,7,8,9
|
||||
分配: 6,2,1,0,0,0,1,0,0,0
|
||||
0在下排出现了6次,1在下排出现了2次,
|
||||
2在下排出现了1次,3在下排出现了0次....
|
||||
以此类推..
|
||||
|
||||
0xX0+1xX1+2xX2....+9xX9 = 10;
|
||||
X0+X1+...+ = 10;
|
||||
|
||||
转换成多元一次方程求通解的问题。(Matlib)
|
||||
|
||||
|
||||
|
||||
|
||||
给出两个集合A和B,其中集合A={name},
|
||||
集合B={age、sex、scholarship、address、...},
|
||||
|
||||
@@ -7,10 +7,21 @@
|
||||
|
||||
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
|
||||
|
||||
|
||||
```
|
||||
int exist_inmatrix(int *matrix,int rows,int cols,int num);
|
||||
1 3 5 7
|
||||
2 5 7 12
|
||||
4 6 9 23
|
||||
6 9 23 75
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
int exist_inmatrix(int *matrix,int rows,int cols,int target);
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 矩阵中最大的二维矩阵
|
||||
|
||||
求一个矩阵中最大的二维矩阵(元素和最大).如:
|
||||
@@ -25,7 +36,10 @@ int exist_inmatrix(int *matrix,int rows,int cols,int num);
|
||||
5 3
|
||||
```
|
||||
|
||||
要求:(1)写出算法;(2)分析时间复杂度;(3)用C写出关键代码
|
||||
要求:
|
||||
(1)写出算法;
|
||||
(2)分析时间复杂度;
|
||||
(3)用C写出关键代码
|
||||
|
||||
```
|
||||
int max_sum_submatrix(int *matrix,int rows,int cols,int *tmatrix,int *trows,int tcols)
|
||||
@@ -125,7 +139,7 @@ void printArry(int *a,int rows,int columns)
|
||||
int* pArr1=new int[rows];//共存有这么多行指针
|
||||
for(int i=0;i<rows;i++)
|
||||
pArr1[i]=i*(columns+1);
|
||||
|
||||
|
||||
while(1)
|
||||
{
|
||||
int min=arr[pArr1[0]];
|
||||
@@ -151,17 +165,3 @@ void printArry(int *a,int rows,int columns)
|
||||
|
||||
|
||||
|
||||
## n支队伍比赛的名次
|
||||
|
||||
n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j的队伍中更强的一支。
|
||||
|
||||
所以w[i][j]=i 或者j,现在给出它们的出场顺序,并存储在数组order[n]中,
|
||||
比如order[n] = {4,3,5,8,1......},那么第一轮比赛就是 4对3, 5对8。.......
|
||||
|
||||
胜者晋级,败者淘汰,同一轮淘汰的所有队伍排名不再细分,即可以随便排,下一轮由上一轮的胜者按照顺序,再依次两两比,比如可能是4对5,直至出现第一名
|
||||
|
||||
编程实现,给出二维数组w,一维数组order 和 用于输出比赛名次的数组result[n],求出result。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#define PrintInt(expr) printf("%s : %d\n",#expr,(expr))
|
||||
|
||||
#define PrintInt(expr) printf("%s : %d\n",#expr,(expr))
|
||||
|
||||
int main()
|
||||
{
|
||||
int y = 100;
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "stdio.h"
|
||||
|
||||
//打印和为n的2个值
|
||||
void print_continuous_sequence_sum(int n){// n=1,2
|
||||
|
||||
int small=1;
|
||||
Reference in New Issue
Block a user