Leetcode爬行(一) 陣列練習

2021-09-24 04:41:20 字數 2328 閱讀 2440

給定乙個整數型別的陣列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的第乙個元素則是我們所求。

class solution 

for(int i=0;i在乙個給定的陣列nums中,總是存在乙個最大元素 。

查詢陣列中的最大元素是否至少是陣列中每個其他數字的兩倍。

如果是,則返回最大元素的索引,否則返回-1。

示例 1:

輸入: nums = [3, 6, 1, 0]

輸出: 1

解釋: 6是最大的整數, 對於陣列中的其他整數,

6大於陣列中其他元素的兩倍。6的索引是1, 所以我們返回1.

示例 2:

輸入: 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 solution 

if(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...