分享三个好玩的小问题,有兴趣的可以弄弄看~
这个难度应该是呈递增阶级的,有兴趣的看看可以弄几题~一
从一个N个元素的递增数组里面判断有没有差值为K的两个数。
输入:
第一行输入数组元素个数N(1<=N<=1e6)和目标差值K(1e-9<=1e9)
第二行递增输入N个元素Ni(1e-9<=Ni<=1e9,注意:数据初始化的时候已是递增输入)
输出:
有就输出Yes没有就输出No
示例:
Input
5 4
1 3 6 8 9
Output
No
Input
6 9
1 5 7 9 11 14
Output
Yes
二
从一个只含有'0'和'1'两种字符的字符串里面选一个子串,使得该子串里面'0'和'1'的个数相等,求符合这个条件的最长子串。
输入:
第一行输入数组元素个数N(1<=N<=1e6)
第二行输入N个元素Ni(每个元素只能是'0'或'1')
输出:
符合条件的最长子串,没有符合条件的则输出0
示例:
Input
10
0001011010
Output
8
Input
5
11011
Output
2
Input
5
11111
Output
0
三
在一个K阶矩阵里面如果某个子矩阵的对角顶点元素分别对应相等,那么这个矩阵就叫"特殊子矩阵",现在就要求这样的特殊子矩阵的最大内含元素个数(包括其顶点边界,实际就是子矩阵的长乘以子矩阵的宽)
输入:
第一行输入矩阵的长N(1<=N<=100)和宽M(1<=M<=100)
接下来M行每行N个元素Nij表示第i行的第j个元素(0<=Nij<=999)
输出:
该特殊子矩阵的最大内含元素个数,如果没有这样的特殊子矩阵就输出0。
示例:
Input
3 4
2 3 2
4 5 1
1 3 4
3 1 2
Output
6
4 4
1 2 3 1
2 2 1 3
4 5 4 2
1 3 2 1
Output
16
Input
2 2
1 2
1 2
Output
0
PS:第三问感觉把1<=Nij<=100改成0<=Nij<=999比较好(这算是一个小提示了,毕竟数据范围本来就是对解题方向的一个要好的提示,当然数个题外话也有给出小数据取值范围但解题方法适用于大数据的"人为"特殊情况)
其实拿出来就是感觉这些解题方法好好玩而已~
[此贴子已经被作者于2018-3-26 23:19编辑过]