【JS】轉置矩陣 #陣列
給定一個矩陣 A, 返回 A 的轉置矩陣。
矩陣的轉置是指將矩陣的主對角線翻轉,交換矩陣的行索引與列索引。
示例 1:
輸入:[[1,2,3],[4,5,6],[7,8,9]]
輸出:[[1,4,7],[2,5,8],[3,6,9]]
示例 2:
輸入:[[1,2,3],[4,5,6]]
輸出:[[1,4],[2,5],[3,6]]
提示:
1 <= A.length <= 1000
1 <= A[0].length <= 1000
解法一:
利用兩個迴圈把二維陣列的每個元素找出來,再用一個新的陣列按規律接收就好了,需要注意的是JS語法與PHP不同,JS的二維陣列需要再次申明為陣列,與一維陣列的申明不同的點是不需要加var,加了就報錯了。
//2018/11/15 Thu 下午
var transpose = function(A) {
var arr=[];
for(var i=0;i<A[0].length;i++){
arr[i]=[]
for(var j=0;j<A.length;j++){
arr[i][j]=A[j][i]
}
}
return arr
};
相關推薦
【JS】轉置矩陣 #陣列
給定一個矩陣 A, 返回 A 的轉置矩陣。 矩陣的轉置是指將矩陣的主對角線翻轉,交換矩陣的行索引與列索引。 示例 1: 輸入:[[1,2,3],[4,5,6],[7,8,9]] 輸出:[[1,4,7],[2,5,8],[3,6,9]] 示例 2: 輸入:[[1,2,3],[4,5,6
【JS】 尋找旋轉排序陣列中的最小值 #陣列 #二分查詢
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 請找出其中最小的元素。 你可以假設陣列中不存在重複元素。 示例 1: 輸入: [3,4,5,1,2] 輸出: 1 示例
【JS】搜尋旋轉排序陣列 II #陣列 #二分查詢
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,0,1,2,2,5,6] 可能變為 [2,5,6,0,0,1,2] )。 編寫一個函式來判斷給定的目標值是否存在於陣列中。若存在返回 true,否則返回 false。 示例 1: 輸入: nums
【JS】 搜尋旋轉排序陣列 #陣列 #二分查詢
假設按照升序排序的陣列在預先未知的某個點上進行了旋轉。 ( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。 搜尋一個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 -1 。 你可以假設陣列中不存在重複的元素。 你的
【JS】卡牌分組 #陣列 #數學
給定一副牌,你需要將整副牌分成 1 組或多組。 要求: 每組牌數量相等、組內每張牌數字相等, 僅當你可選的 X >= 2 時返回 true。 輸入:[1,2,3,4,4,3,2,1] , 輸出:true 解釋:可行的分組是 [1,1],[2,2],[3,3],[4,4]
【JS】 有效的山脈陣列 #陣列
給定一個整數陣列 A,如果它是有效的山脈陣列就返回 true,否則返回 false。 讓我們回顧一下,如果 A 滿足下述條件,那麼它是一個山脈陣列: A.length >= 3 在 0 < i < A.length - 1 條件下,存在 i 使得: A[0] <
【JS】移除元素 #陣列
給定一個數組 nums 和一個值 val,移除所有數值等於 val 的元素,返回陣列的新長度 給定 nums = [3,2,2,3], val = 3 輸出: 2 給定 nums = [0,1,2,2,3,0,4,2], val = 2 輸出: 5 你可以在原地修改輸入陣列並在
【JS】搜尋插入的陣列位置
給定一個排序陣列和一個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。 你可以假設陣列中無重複元素。 示例 1: 輸入: [1,3,5,6], 5 輸出: 2 示例 2: 輸入: [1,3,5,6], 2 輸出: 1
【JS】 搜尋二維矩陣 #陣列 #二分查詢
編寫一個高效的演算法來判斷 m x n 矩陣中,是否存在一個目標值。該矩陣具有如下特性: 每行中的整數從左到右按升序排列。 每行的第一個整數大於前一行的最後一個整數。 示例 1: 輸入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23,
【Leetcode】 867. 轉置矩陣
給定一個矩陣 A, 返回 A 的轉置矩陣。 矩陣的轉置是指將矩陣的主對角線翻轉,交換矩陣的行索引與列索引。 示例 1: 輸入:[[1,2,3],[4,5,6],[7,8,9]] 輸出:[[
【JS】兩個陣列的交集 II #排序 #雜湊 #雙指標 #二分查詢
給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: 輸出結
【JS】兩數之和 II - 輸入有序陣列 #陣列 #雙指標 #二分查詢
給定一個已按照升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。 函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。 說明: 返回的下標值(index1 和 index2)不是從零開始的。 你可以假設每個輸入只對應唯一的答案,
【JS】 兩個陣列的交集 #排序 #雜湊 #雙指標 #二分查詢
給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [9,4] 說明: 輸出結果中
【JS】 二分查詢 #陣列 #二分查詢 Leetcode
給定一個 n 個元素有序的(升序)整型陣列 nums 和一個目標值 target ,寫一個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 -1。 示例 1: 輸入: nums = [-1,0,3,5,9,12], target = 9 輸出: 4 解釋: 9 出
【JS】山脈陣列的峰頂索引 #二分查詢
我們把符合下列屬性的陣列 A 稱作山脈: A.length >= 3 存在 0 < i < A.length - 1 使得 A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length
【JS】 移動零 #陣列 #雙指標
給定一個數組 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。 示例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 說明: 必須在原陣列上操作,不能拷貝額外的陣列。 儘量減少操作次數。 解法一: 首先使用迴圈把等
【JS】買賣股票的最佳時機I #陣列 #動態規劃
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個演算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出股票。 示例 1: 輸入: [7,1,5,3,6,4] 輸出: 5 解釋: 在第 2 天(
【JS】陣列中缺失的數字
給定一個包含 0, 1, 2, …, n 中 n 個數的序列,找出 0 … n 中沒有出現在序列中的那個數。 示例 1: 輸入: [3,0,1] 輸出: 2 示例 2: 輸入: [9,6,4,2,3,5,7,0,1] 輸出: 8 示例 3: 輸入: [1] 輸出: 0 說明:
【JS】合併兩個有序陣列 #陣列
給定兩個有序整數陣列 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成為一個有序陣列。 說明: 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。 你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 nu
【JS】 尋找陣列的中心索引 #陣列
給定一個整數型別的陣列 nums,請編寫一個能夠返回陣列“中心索引”的方法。 我們是這樣定義陣列中心索引的:陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。 如果陣列不存在中心索引,那麼我們應該返回 -1。如果陣列有多箇中心索引,那麼我們應該返回最靠近左邊的那一個。