兩次過 Lintcode 1170 重塑矩陣

2021-08-28 10:47:02 字數 836 閱讀 6630

在matlab中,有乙個非常有用的函式叫做'reshape',它可以將矩陣重新整形為乙個不同大小的矩陣,但保留其原始資料。

先給出乙個由二維陣列表示的矩陣,以及兩個正整數r和c,分別表示所需重新整形矩陣的行數和列數。

重新形成的矩陣需要用原始矩陣的所有元素以相同的行遍歷順序填充。

如果使用給定引數的「重塑」操作是可能且合法的,則輸出新的重新整形矩陣; 否則,輸出原始矩陣。

樣例1:

輸入: 

nums =

[[1,2],

[3,4]]

r = 1, c = 4

輸出:

[[1,2,3,4]]

解釋:行遍歷的順序為 [1,2,3,4]. 新給出的矩陣大小為1 * 4, 根據前面給出的列表按行遍歷即可。

樣例2:

輸入: 

nums =

[[1,2],

[3,4]]

r = 2, c = 4

輸出:

[[1,2],

[3,4]]

解釋:無法將乙個2 * 2的矩陣整形稱為乙個2 * 4的矩陣。 所以輸出原始矩陣。

矩陣行和列的大小範圍為[1, 100]。

給出的r和c都為正數。

對於這種二維陣列大小重新非配的問題的關鍵就是對應位置的座標轉換,最直接的辦法就是先把原陣列拉直,變成一條直線,然後再組成新的陣列。直接就是遍歷拉直後的一維陣列的座標,然後分別轉換為兩個二維陣列的座標進行賦值, 參見**如下:

public class solution 

}

兩次過 Lintcode 56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。example1 給出 numbers 2,7,11,15 target 9,返回 0,1 example2 ...

兩次過 Lintcode 1209 構造矩形

對於乙個web開發者,如何設計頁面大小很重要。所以,給定乙個矩形大小,設計其長 l 寬 w 使其滿足如下要求 1.矩形區域大小需要和給定目標相等。2.寬度w不大於長度l,也即l w.3.長和寬的差異盡可能的小。返回設計好的長度l和寬度w。樣例 輸入 4 輸出 2,2 解釋 目標區域是4,所有可能的構...

兩次過 Lintcode 212 空格替換

設計一種方法,將乙個字串中的所有空格替換成 20。你可以假設該字串有足夠的空間來加入新的字元,且你得到的是 真實的 字元長度。你的程式還需要返回被替換後的字串的長度。對於字串 mr john smith 長度為13 替換空格之後,引數中的字串需要變為 mr 20john 20smith 並且把新長度...