LeectCode 每日一題 尋找陣列的中心索引

2021-10-10 19:07:50 字數 977 閱讀 6836

給定乙個整數型別的陣列 nums,請編寫乙個能夠返回陣列 「中心索引」 的方法。

陣列中心索引:陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。

如果陣列不存在中心索引,那麼我們應該返回 -1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。

示例一:

輸入:nums = [1, 7, 3, 6, 5, 6]

輸出:3

解釋:索引 3 (nums[3] = 6) 的左側數之和 (1 + 7 + 3 = 11),與右側數之和 (5 + 6 = 11) 相等。

同時, 3 也是第乙個符合要求的中心索引。

示例二:

輸入:nums = [1, 2, 3]

輸出:-1

解釋:陣列中不存在滿足此條件的中心索引。

當陣列長度小於等於2時,不存在中心索引

首先計算自索引1開始的陣列之和,賦值為rightsum,初始中心索引index=0.

如果索引值還沒到陣列的長度-1的或者左邊的累加和不等於右邊的累加和的話,左邊的累加和就加上中心索引所在陣列中的值,右邊的累加和則加上中心索引的下乙個索引的在陣列中的值,最後中心索引腳標++,如果最後兩邊的和一樣則返回中心索引的值,否則返回-1

class

solution

int leftsum =0;

int middleindex =0;

int rightsum =0;

for(

int i =

1; i < nums.length; i++

)while

(middleindex != nums.length -

1&& leftsum != rightsum)

if(leftsum == rightsum)

else

}}

leetCode每日一題 尋找中位數

給定兩個大小為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。分析 單看題目尋找中位數而言,可以簡化為尋找兩個數列中的第n位數字,可以通過利用指標...

每日一題 287 尋找重複數 20200526

今天是2020年5月26日,星期二。給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。示例 1 輸入 1,3,4,2,2 輸出 2示例 2 輸入 3,1,3,4,2 輸出 3說明 不能更...

每日一題 leetcode 162 尋找峰值

尋找峰值 難度中等243 峰值元素是指其值大於左右相鄰值的元素。給定乙個輸入陣列 nums,其中 nums i nums i 1 找到峰值元素並返回其索引。陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。你可以假設 nums 1 nums n 示例 1 輸入 nums 1,2,3,...