題目分類 :陣列
時間 :2020-09-25
給定乙個矩陣 a, 返回 a 的轉置矩陣。
矩陣的轉置是指將矩陣的主對角線翻轉,交換矩陣的行索引與列索引 示例
輸入:[[1,2,3],[4,5,6],[7,8,9]]
輸出:[[1,4,7],[2,5,8],[3,6,9]]
輸入:[[1,2,3],[4,5,6]]
輸出:[[1,4],[2,5],[3,6]]
思路 :
1. 抽取矩陣的行數和列數,即外圍陣列的長度和子陣列的長度
2. 從每一列中抽取同一位置的數字,生成新矩陣的新的一行
**如下
var transpose = function (a)
resultarr.push(arr);
}return resultarr
}
陣列中佔比超過一半的元素稱之為主要元素。給定乙個整數陣列,找到它的主要元素。若沒有,返回-1。 示例
輸入:[1,2,5,9,5,9,5,5,5]
輸出:5
輸入:[3,2]
輸出:-1
輸入:[2,2,1,1,1,2,2]
輸出:2
思路
使用雜湊表,將元素名作為物件元素的鍵名存入物件,可在遍歷的同時快速查詢、記錄和更新該元素出現的次數,在一次遍歷中得出結果。
**如下 :
var majorityelement = function (nums) ;
for (let i = 0; i < nums.length; i++)
}else
}return -1;
};
給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。
示例 1:
輸入:[-4,-1,0,3,10]
輸出:[0,1,9,16,100]
輸入:[-7,-3,2,3,11]
輸出:[4,9,9,49,121]
思路
1.進行平方運算,生成新陣列以後,直接使用js函式庫自帶的sort()方法進行排序。
var sortedsquares = function (a)
let resultarr = newarr.sort((a,b) => a-b)
return resultarr;
};
這種辦法雖然簡單實用,運算時間在力扣的評價也很優秀,但用自帶函式庫進行排序就達不到訓練的效果了。
2.暴力排序
簡單直接但低效,力扣判定會超時。
3.氣泡排序
通過不斷比較相鄰的元素,若右側元素的值比左側小,則將兩個數值替換,直到逼近陣列末尾的方法,將最大值排到了最右側。
var sortedsquares = function (a)
for (let i = 0; i < newarr.length; i++) }}
return newarr;
}
力扣刷題記錄05
題目分類 二分查詢 時間 2020 09 09 題目一 兩數之和 兩數之和 ii 輸入有序陣列 給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 ind...
力扣刷題記錄2
第一題是每日一題的簡單題。需要記的並不多,一是用迭代器對vector的一些基本操作。可以參考這裡 for vector iterator iter num.begin iter num.end iter 另外是快排的思想。這種思想實用性很廣,即使不需要排序,在找出最大的k個數,對陣列進行分割 以中間...
力扣刷題記錄10
三角形的最大周長 看到這個題目,我想到了排序後從最大的中挑選,但遇到了點困難,一方面是無法記錄哪個是最大的點,這樣每次都要判斷。另一方面是根據題目要求,每個數只能用一次,要記錄下當前哪些是已經被使用了的。看到題解之後感覺自己是個智障。class solution return0 下次貪心時候也要動動...