ファーウェイの事前承認
筆記試験:
AC>=1でOK
側面:
主にプロジェクトに関する知識を聞いて、手でコードeasyを引き裂くのは難しくて、配列は重くて並べ替えます.
両面:
やはり先にいくつかプロジェクトの知识を闻いて、それから私に対抗して学习して、强化して、深く学习して、私はその时愚かで、私が最初に投げたアルゴリズムが后でC++を投げて开発したので、主にそれらの実现の原理と相互の区别を闻いて、私に机械の学习のこの1つの厳しさを闻いて、私はただ私が学んだことがあると言って、emmmmm.しかし、よく知っていて、答えられるようになりました.それから私にTensorflowのいくつかの細部を聞いて、すべて答えることができません.それからまた私にC++を聞いて、lambdaとSTLを聞いて、これらも基礎知識で、すべて答えることができて、道理を言って面接するのが最も楽しいのはC++の相互質問の相互回答の一環です.
手がコードを引き裂くのは本当に少し気持ちが悪くて、BFSではありませんて動的な計画ではありませんて、更に貪欲ではありませんて、螺旋の配列で、その時私はもう少しで書くことができなくて、急いで水を飲んで、深呼吸をします.
テーマは3つのパラメータをあげて、m,x,y mは螺旋の配列の幅で、(x,y)は螺旋の配列の内で定点の座標をあげて、1-9の9つの数字の循環で充填して、この点の値を求めます
例:
1 2 3 4 5
7 8 9 1 6
6 6 7 2 7
5 5 4 3 8
4 3 2 1 9
x=3,y=1,res=5
最初はダイナミックに計画できると思っていたが、10分も無駄にしてしまった.
面接が終わってからコードを改善したら、きっと一番いい方法ではありませんが、十分です.
三面:
三面部屋を間違えて入ったので、本来は30分、一番後ろは20分ぐらいでした.主にいくつかの性格の趣味、長所と短所、カテゴリのHR面を聞いて、何の面経もなくて、あまり鋼を使わないでください.
手でコードを引き裂くには冷静にしなければなりません.引き裂いたのは直接下の面で、引き裂かないのは池に1週間浸かって、人が欠けてからあなたをすくい取りに来ます.
AC>=1でOK
側面:
主にプロジェクトに関する知識を聞いて、手でコードeasyを引き裂くのは難しくて、配列は重くて並べ替えます.
両面:
やはり先にいくつかプロジェクトの知识を闻いて、それから私に対抗して学习して、强化して、深く学习して、私はその时愚かで、私が最初に投げたアルゴリズムが后でC++を投げて开発したので、主にそれらの実现の原理と相互の区别を闻いて、私に机械の学习のこの1つの厳しさを闻いて、私はただ私が学んだことがあると言って、emmmmm.しかし、よく知っていて、答えられるようになりました.それから私にTensorflowのいくつかの細部を聞いて、すべて答えることができません.それからまた私にC++を聞いて、lambdaとSTLを聞いて、これらも基礎知識で、すべて答えることができて、道理を言って面接するのが最も楽しいのはC++の相互質問の相互回答の一環です.
手がコードを引き裂くのは本当に少し気持ちが悪くて、BFSではありませんて動的な計画ではありませんて、更に貪欲ではありませんて、螺旋の配列で、その時私はもう少しで書くことができなくて、急いで水を飲んで、深呼吸をします.
テーマは3つのパラメータをあげて、m,x,y mは螺旋の配列の幅で、(x,y)は螺旋の配列の内で定点の座標をあげて、1-9の9つの数字の循環で充填して、この点の値を求めます
例:
1 2 3 4 5
7 8 9 1 6
6 6 7 2 7
5 5 4 3 8
4 3 2 1 9
x=3,y=1,res=5
最初はダイナミックに計画できると思っていたが、10分も無駄にしてしまった.
// 1->9
//1 2 3 4
//3 4 5 5
//2 7 6 6
//1 9 8 7
//m , (x,y) 1-9
#include
#include
using namespace std;
class solution
{
public:
int getMin(int x,int y)
{
x = x < 0 ? -x : x;
y = y < 0 ? -y : y;
x = x > y ? x : y;
return x;
}
int getPoint(int m, int x, int y)
{
int r = m - 1;// m-1
int mid = (m-1)>>1;//
int circles = mid - getMin(x - mid, y - mid);//
int res = 0;
for (int i=0;i < circles;i++)
{
res += r * 4;//
r -= 2;
}
//
if (circles == x)
res += (y - circles + 1);
else if (m - 1 - circles == y)
res += (r + x - circles + 1);
else if (m - 1 - circles == x)
res += (r * 2 + m - 1 - circles - y + 1);
else
res += (r * 3 + m - 1 - circles - x + 1);
res = res%9==0 ? 9 : res % 9;
return res;
}
};
int main()
{
solution s = solution();
//int res = s.getPoint(5, 2, 3);
int res = s.getPoint(5, 2, 1);
cout << res << endl;
system("pause");
return 0;
}
面接が終わってからコードを改善したら、きっと一番いい方法ではありませんが、十分です.
三面:
三面部屋を間違えて入ったので、本来は30分、一番後ろは20分ぐらいでした.主にいくつかの性格の趣味、長所と短所、カテゴリのHR面を聞いて、何の面経もなくて、あまり鋼を使わないでください.
手でコードを引き裂くには冷静にしなければなりません.引き裂いたのは直接下の面で、引き裂かないのは池に1週間浸かって、人が欠けてからあなたをすくい取りに来ます.