程式設計師面試金典 面試題 05 08 繪製直線

2022-04-02 02:22:50 字數 747 閱讀 8346

繪製直線。有個單色螢幕儲存在乙個一維陣列中,使得32個連續畫素可以存放在乙個 int 裡。螢幕寬度為w,且w可被32整除(即乙個 int 不會分布在兩行上),螢幕高度可由陣列長度及螢幕寬度推算得出。請實現乙個函式,繪製從點(x1, y)到點(x2, y)的水平線。

給出陣列的長度 length,寬度 w(以位元為單位)、直線開始位置 x1(位元為單位)、直線結束位置 x2(位元為單位)、直線所在行數 y。返回繪製過後的陣列。

示例1:

輸入:length = 1, w = 32, x1 = 30, x2 = 31, y = 0

輸出:[3]

說明:在第0行的第30位到第31為畫一條直線,螢幕表示為[0b000000000000000000000000000000011]

示例2:

輸入:length = 3, w = 96, x1 = 0, x2 = 95, y = 0

輸出:[-1, -1, -1]

這道題不是很好理解,可以把所返回的一維陣列轉換成二維來編號,如果length15,在y=1上畫線,實際上就是對陣列中,3,4,5這三個索引的數進行操作。可以利用

integer.parseunsignedint(「11011」, 2);

將字串轉換成2進製數。

class

solution

else

if(i % 32 == 31)

}return

res;

}}

程式設計師面試金典 面試題 08 09 括號

括號。設計一種演算法,列印n對括號的所有合法的 例如,開閉一一對應 組合。說明 解集不能包含重複的子集。例如,給出 n 3,生成結果為 dfs搜尋,如果當前左括號用超了,右括號用超了,或者右括號的數量大於左括號的數量直接返回。而如果左右括號剛好用盡,代表生成乙個結果,記錄下來。然後就是遞迴,新增左括...

程式設計師面試金典 面試題 08 13 堆箱子

堆箱子。給你一堆n個箱子,箱子寬 wi 高hi 深di。箱子不能翻轉,將箱子堆起來時,下面箱子的寬度 高度和深度必須大於上面的箱子。實現一種方法,搭出最高的一堆箱子。箱堆的高度為每個箱子高度的總和。輸入使用陣列 wi,di,hi 表示每個箱子。示例1 輸入 box 1,1,1 2,2,2 3,3,3...

程式設計師面試金典

1.有個小孩正在上樓梯,樓梯有n階台階,小孩一次可以上1階 2階 3階。請實現乙個方法,計算小孩有多少種上樓的方式。為了防止溢位,請將結果mod 1000000007 給定乙個正整數intn,請返回乙個數,代表上樓的方式數。保證n小於等於100000。int countways int n retu...