給定乙個整數型別的陣列nums
,請編寫乙個能夠返回陣列「中心索引」的方法。
我們是這樣定義陣列中心索引的:陣列中心索引的左側所有元素相加的和等於右側所有元素相加的和。
如果陣列不存在中心索引,那麼我們應該返回 -1。如果陣列有多個中心索引,那麼我們應該返回最靠近左邊的那乙個。
示例 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
解釋:
陣列中不存在滿足此條件的中心索引。
說明:
思路:該題的關鍵是要能夠算出陣列的兩邊的和,這需要先通過遍歷得到陣列的總和,再通過一次for迴圈得到中心索引左邊的和,需要注意的是中心索引不能被計入其中,索引右邊的值由總和與左邊做差運算。這裡還有乙個要求就是若有多個中心索引則取靠近左邊的,可以理解為取for迴圈中 i 值最小的即可,這裡採用list做陣列來臨時儲存判斷為中心索引的 i 值,最後list的第乙個元素則是我們所求。
示例 2:class solution
中,總是存在乙個最大元素 。for(int i=0;i在乙個給定的陣列nums
查詢陣列中的最大元素是否至少是陣列中每個其他數字的兩倍。
如果是,則返回最大元素的索引,否則返回-1。
示例 1:
輸入: nums = [3, 6, 1, 0]
輸出: 1
解釋: 6是最大的整數, 對於陣列中的其他整數,
6大於陣列中其他元素的兩倍。6的索引是1, 所以我們返回1.
輸入: nums = [1, 2, 3, 4]
輸出: -1
解釋: 4沒有超過3的兩倍大, 所以我們返回 -1.
nums
的長度範圍在[1, 50]
.
每個nums[i]
的整數範圍在[0, 99]
.
思路:1、一開始就想到通過宣告乙個空陣列用來儲存並排序,這樣能直接獲取排序好的陣列,但這樣便無法獲取對應的索引。
2、先遍歷一邊陣列獲得最大值與之對應的索引,再用最大值做判斷找出第二大的元素。
3、這裡還有幾個需要考慮的點是當陣列只有乙個元素則直接返回索引0,陣列長度為2是只需要滿足最大值是另乙個元素的兩倍即可,再者就是這裡會出現陣列為0的情況,那麼就不能以除法運算做條件,0不能作分母。
class solution else
}int largest = 0;
int max = 0;
int index = 0;
for(int i=0;ilargest)
}for(int j=0;j給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1:
輸入:[1,2,3]輸出:[1,2,4]解釋:輸入陣列表示數字 123。
示例 2:
輸入:[4,3,2,1]輸出:[4,3,2,2]解釋:輸入陣列表示數字 4321。思路:1、輸入的乙個陣列做+1的"運算",做加法運算要考慮進製的問題,宣告乙個進製變數,從陣列末尾開始遍歷,遇9進1。2、當出現特殊情況陣列元素均為9時,則需要新增一位。另外宣告乙個長度+1的陣列用於做特殊情況的處理。
class solutionif(carry>0)
return res;
}return digits;
}}
北郵大一陣列練習二
題目描述 有n個互不相同的整數,儲存在陣列中。在這n個整數中查詢m個整數,如果存在,則列印出與之相鄰的整數 否則就顯示無此數。輸入與輸出要求 首先輸入乙個整數n以及n個整數 n的範圍是1 1000 然後輸入整數m,代表查詢次數 m的範圍是1 100 接著輸入m個待查詢的數。輸出m行查詢的結果,每次的...
北郵大一陣列練習三
已知乙個長度為n的整數陣列,在保證原順序的前提下,將該陣列中所有的偶數放到所有的奇數之前,存到乙個新陣列中,並將新陣列輸出。輸入與輸出要求 首先輸入乙個整數n,代表輸入整數個數 n的範圍是1 200 然後輸入n個整數,每個整數的取值範圍是int型範圍。輸出新陣列中的元素,數與數之間用空格分開,第n個...
LeetCode 一 陣列與字串
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的 兩個 整數。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素 例項 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1...