尋找陣列的中心索引
平時寫專案時,碰到演算法相關問題,都要思考許久,所以從現在開始堅持學習演算法,從易到難!主要目的學習演算法的思路!今天看下怎麼尋找一個陣列的中心索引,看下面示例
示例 1:
輸入:
nums = [1, 7, 3, 6, 5, 6]
輸出:3
解釋:
索引 3 (nums[3] = 6) 的左側數之和 (1 + 7 + 3 = 11),與右側數之和 (5 + 6 = 11) 相等。
同時, 3 也是第一個符合要求的中心索引。
示例 2:
輸入:
nums = [1, 2, 3]
輸出:-1
解釋:
陣列中不存在滿足此條件的中心索引。
我以為只能從排除第一項和最後項的位置去找中心索引位置,看到上面的結果我錯了,中心索引位置也可以是第一項和最後項!所以我的思路(還是很繁瑣),一開始在陣列的頭和尾加上兩個0,然後排除空陣列的情況(只有我加的2個0),然後一個從左邊開始算,一個從右邊開始算,左邊等於右邊輸出索引!
/**
* @param {number[]} nums
* @return {number}
*/
var pivotIndex = function(nums) {
let left = right = 0;
nums.push(left);
nums.unshift(right);
if (nums.length == 2) {
return -1;
};
for (let i = 0; i < nums.length - 2; i++) {
left = nums[i] + left;
for (let k = nums.length - 1; k > i + 1; k--) {
right = nums[k] + right;
}
if (left == right) {
return i;
} else {
right = 0;
}
}
return -1;
};
這個方法畢竟還是很複雜,多次判斷和多次迴圈!然後再想了下別的方法!假如一個陣列arr,leftNumber+leftNumber+arr[i]=arr總和,思路是陣列左邊+陣列右邊+中間索引位置的值 =陣列總和!這個方法程式碼量也很少!判斷也少!
/**
* @param {number[]} nums
* @return {number}
*/
var pivotIndex = function(nums) {
let totolNumber = nums.reduce(function (a, b) {
return a + b;
}, 0);
let leftNumber = 0;
for (var i = 0; i < nums.length; i++) {
if (totolNumber - nums[i] === 2 * leftNumber) {
return i;
}
leftNumber += nums[i];
}
return -1;
};
相關文章
- LeetCode每日一題:找陣列的中心索引(No.724)LeetCode每日一題陣列索引
- 【Java】尋找陣列中“主要元素”Java陣列
- 尋找陣列中第K大的元素陣列
- 尋找兩個有序陣列的中位數陣列
- 尋找陣列中和為定值的兩個數陣列
- 尋找兩個正序陣列中的中位數陣列
- 153. 尋找旋轉排序陣列中的最小值排序陣列
- LeetCode--尋找兩個有序陣列的中位數(05)LeetCode陣列
- 4. 尋找兩個正序陣列的中位數陣列
- 153. 尋找旋轉排序陣列中的最小值(中)排序陣列
- 【LeetCode】153. 尋找旋轉排序陣列中的最小值LeetCode排序陣列
- LeetCode-153-尋找旋轉排序陣列中的最小值LeetCode排序陣列
- LeetCode第4題:尋找兩個有序陣列的中位數LeetCode陣列
- 尋找兩個正序陣列的中位數問題,方法一:合併陣列檢索法陣列
- 尋找陣列中的最大值和最小值O(1.5*N)陣列
- 【LeetCode Hot 100】4. 尋找兩個正序陣列的中位數LeetCode陣列
- [LeetCode 刷題] 4. 尋找兩個有序陣列的中位數 (Hard)LeetCode陣列
- GO實現:leetcode之尋找兩個正序陣列的中位數GoLeetCode陣列
- PHP 陣列搜尋 sdk & 陣列分頁PHP陣列
- lgP5788 陣列中尋找右側第一個大於它的數陣列
- 力扣演算法題:尋找兩個正序陣列的中位數力扣演算法陣列
- LeetCode解題(C++)-4. 尋找兩個有序陣列的中位數LeetCodeC++陣列
- DM7 陣列索引陣列索引
- 找一個陣列中特別的數陣列
- DM8管理陣列索引陣列索引
- 【C#】山脈陣列的峰頂索引C#陣列索引
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- JavaScript 陣列 指定索引位置插入元素JavaScript陣列索引
- 第六篇 numpy陣列索引陣列索引
- 如何在 bash 中使用索引陣列索引陣列
- 【numpy學習筆記】陣列的切片,索引,迭代筆記陣列索引
- LeetCodeHot100 二分查詢 35. 搜尋插入位置 74. 搜尋二維矩陣 34. 在排序陣列中查詢元素的第一個和最後一個位置 33. 搜尋旋轉排序陣列 153. 尋找旋轉排序陣列中的最小值LeetCode矩陣排序陣列
- 數學建模例題2.27 陣列元素的索引示例陣列索引
- js如何使用索引訪問陣列物件中的元素JS索引陣列物件
- 尋找真凶
- 用 PHP 在 力扣 刷演算法 [尋找兩個正序陣列的中位數]{有空就更}PHP力扣演算法陣列
- 易語言陣列 ,索引從 1 開始。陣列索引
- NumPy 分割與搜尋陣列詳解陣列