Leetcode-5846.周赛 找到数组的中间位置
生活随笔
收集整理的這篇文章主要介紹了
Leetcode-5846.周赛 找到数组的中间位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
給你一個下標從?0?開始的整數數組?nums?,請你找到?最左邊?的中間位置?middleIndex?(也就是所有可能中間位置下標最小的一個)。
中間位置?middleIndex?是滿足?nums[0] + nums[1] + ... + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + ... + nums[nums.length-1]?的數組下標。
如果?middleIndex == 0?,左邊部分的和定義為?0?。類似的,如果?middleIndex == nums.length - 1?,右邊部分的和定義為?0?。
請你返回滿足上述條件?最左邊?的?middleIndex?,如果不存在這樣的中間位置,請你返回?-1?。
示例 1:
輸入:nums = [2,3,-1,8,4] 輸出:3 解釋: 下標 3 之前的數字和為:2 + 3 + -1 = 4 下標 3 之后的數字和為:4 = 4示例 2:
輸入:nums = [1,-1,4] 輸出:2 解釋: 下標 2 之前的數字和為:1 + -1 = 0 下標 2 之后的數字和為:0?解題代碼
class Solution {public int findMiddleIndex(int[] nums) {int n = nums.length;if (n==1){return 0;}int pre= 0;int after = 0;for (int i = 0;i<n;i++){after += nums[i];}for(int i = 0;i <n ;i++){after = after - nums[i];if (pre==after){return i;}else{pre = pre + nums[i];}}return -1;} }總結
以上是生活随笔為你收集整理的Leetcode-5846.周赛 找到数组的中间位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode周赛5827. 检查操作
- 下一篇: CEPH给用户创建读写权限