快手后台笔试
第一题:
没建树,建树好像太麻烦了,然后选择题耽误了好多时间,直接简单的做了,根据大小堆的那种方法。
根节点:i
左子树:2*i + 1
右子树:2*i + 2
要时刻注意 小于数组长度。
改一下:
有大佬指点了一下,直接用数组的话会有一种情况下出现错误。
这种方法只能判断当前节点的左右子树是不是满足二叉搜索树结构,但是当前节点的左子树或者右子树节点下边的结点是否满足这个结点搜索结构是不确定的。
直接放图吧
第二题:
直接放代码吧:
PS:递归是真的简单!!!!!!!!!然而做笔试的时候就铁着心想去试用栈,2333333333,难受啊,只过了30.
下边这个我觉得应该是对的吧。。。。
#include<iostream>
using namespace std;
#include<vector>
int GetNum(int n)
{
int num = 0;
while (n)
{
num += n % 10;
n /= 10;
}
return num;
}
void Move(vector<vector<int>>& v, int x, int y)
{
if ((x < 0 || x >= (int)v[0].size()) || (y < 0 || y >= (int)v.size()) || v[x][y] == 1)
{
return;
}
if (v[x][y] == 0)
{
v[x][y] = 2;
Move(v, x + 1, y);
Move(v, x - 1, y);
Move(v, x, y + 1);
Move(v, x, y - 1);
}
}
int Get(int x, int y, int k)
{
int ret = 0;
vector<vector<int>> v;
for (int i = 0; i < x; ++i)
{
vector<int> v1;
for (int j = 0; j < y; ++j)
{
if (GetNum(i) + GetNum(j) <= k)
{
v1.push_back(0);
}
else
{
v1.push_back(1);
}
}
v.push_back(v1);
}
Move(v,0,0);
for (int i = 0; i < x; ++i)
{
for (int j = 0; j < y; ++j)
{
if (v[i][j] == 2)
{
ret++;
}
}
}
return ret;
}
int main()
{
int x, y, k;
cin >> x >> y >> k;
cout << Get(x, y, k) << endl;;
return 0;
}
using namespace std;
#include<vector>
int GetNum(int n)
{
int num = 0;
while (n)
{
num += n % 10;
n /= 10;
}
return num;
}
void Move(vector<vector<int>>& v, int x, int y)
{
if ((x < 0 || x >= (int)v[0].size()) || (y < 0 || y >= (int)v.size()) || v[x][y] == 1)
{
return;
}
if (v[x][y] == 0)
{
v[x][y] = 2;
Move(v, x + 1, y);
Move(v, x - 1, y);
Move(v, x, y + 1);
Move(v, x, y - 1);
}
}
int Get(int x, int y, int k)
{
int ret = 0;
vector<vector<int>> v;
for (int i = 0; i < x; ++i)
{
vector<int> v1;
for (int j = 0; j < y; ++j)
{
if (GetNum(i) + GetNum(j) <= k)
{
v1.push_back(0);
}
else
{
v1.push_back(1);
}
}
v.push_back(v1);
}
Move(v,0,0);
for (int i = 0; i < x; ++i)
{
for (int j = 0; j < y; ++j)
{
if (v[i][j] == 2)
{
ret++;
}
}
}
return ret;
}
int main()
{
int x, y, k;
cin >> x >> y >> k;
cout << Get(x, y, k) << endl;;
return 0;
}
放一下两个有代表性的测试用例吧:
第一个:
然后第二个:
第三个就不放了。
那个,有没有19届春招找不到了,毕业一起去养猪呀,跟着舍友转行了。。。。2333333333333