位元組跳動2018筆試附加題,二階數字魔方

2021-09-26 06:41:17 字數 1776 閱讀 9368

魔方的旋轉方式大致可分為三個(順時針可以通過對應逆時針旋轉三次實現),右面(y)逆時針,後面(x)逆時針,上面(z)逆時針,封裝成三個函式,分析發現,所有的旋轉可以歸結為一圈八個塊的位置輪轉(函式zheng)和乙個側面四個小塊的位置輪換(函式ce)。

不超過5次的操作,可以通過乙個類似深度優先遍歷操作實現(這裡會有很多重複,暫時沒有優化)

#include

#include

using

namespace std;

#define depth 5

class

mofang

,//up 0

,//left 1

,//before 2

,//right 3

,//down 4

//behind 5};

void

zheng

(int p1,

int p2,

int p3,

int p4,

int p5,

int p6,

int p7,

int p8)

voidce(

int p1,

int p2,

int p3,

int p4)

public

:void

add(

int n)

void

turny()

void

turnx()

void

turnz()

intgetsum()

sum +

= tempsum;

tempsum =1;

}return sum;

}int

getmax

(int dep)

turny()

;turny()

; temp =

getsum()

;if(temp>max) max=temp;

if(dep

turny()

;turnx()

; temp =

getsum()

;if(temp>max) max=temp;

if(dep

turnx()

;turnx()

; temp =

getsum()

;if(temp>max) max=temp;

if(dep

turnx()

;turnz()

; temp =

getsum()

;if(temp>max) max=temp;

if(dep

turnz()

;turnz()

; temp =

getsum()

;if(temp>max) max=temp;

if(dep

turnz()

;return max;}}

;int

main()

cout << m.

getmax(1

)<< endl;

return0;

}

位元組跳動秋招2020 8 11筆試記錄

1.可能有多個鬧鐘可以及時到達教室 2.要在所有鬧鐘中找乙個最優解 function gettime arr 輸入部分 varn parseint readline 鬧鐘數目 var rawclocks 原始時間資料 var clocks 所有鬧鐘時間 for let i 0 i n i clock...

題解 2018校招真題(位元組跳動 附加題)

二階魔方又叫小魔方,是2 2 2的立方形結構。每一面都有4個塊,共有24個塊。每次操作可以將任意一面逆時針或者順時針旋轉90 如將上面逆時針旋轉90 操作如下。nero在小魔方上做了一些改動,用數字替換每個塊上面的顏色,稱之為數字魔方。魔方上每一面的優美度就是這個面上4個數字的乘積,而魔方的總優美度...

《位元組跳動》筆試第二題

題目 輸入 第一行輸入乙個數n,表示下邊有幾行。接下來輸入n行,每一行格式為1,2 3,4 5,6.輸出 將重疊部分進行合併的結果,按從小到大輸出。例如 python實現 import sys if name main n input q for i in range n line sys.stdi...