2021.5.19

Posted 开心大哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.5.19相关的知识,希望对你有一定的参考价值。

724. 寻找数组的中心下标

给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。

数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。

如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。

注意:中心下标可能出现在数组的两端。

思路:

  1、暴力求解:在遍历时分别求出当前元素的前缀和和后缀和,进行比较求解

  2、前缀和求解:提前求出所有的前缀和及总的和,之后遍历时只需要按照公式:total==2*sum+num【i】进行比对求解

  3、分别求出前后缀和:遍历时直接比对

题解:

1、

public class Solution_violence {
    public int pivotIndex(int[] nums) {

        for(int i=0;i<nums.length;i++){
            int left = 0;
            int right = 0;
            for(int j=0;j<i;j++){
                left+=nums[j];
            }
            for(int j=i+1;j<nums.length;j++){
                right+=nums[j];
            }
            
            if(left == right){
                return i;
            }
        }
        return -1;
    }
}

2、

import java.util.Arrays;

public class Solution_Prefix_and {
    public int pivotIndex(int[] nums) {
        int total = Arrays.stream(nums).sum();
        int sum = 0;
        for (int i = 0; i < nums.length; ++i) {
            if (2 * sum + nums[i] == total) {
                return i;
            }
            sum += nums[i];
        }
        return -1;
    }

}

3、

package Find_Pivot_Index;

public class Solution_left_and_right_sum {
    public int pivotIndex(int[] nums) {
        int len = nums.length , suml = 0 , sumr = 0;
        int[] left_sum = new int[len] , right_sum = new int[len];
        for(int i = 0, j = len - 1 ; i < len ; i++) {
            if(i == 0 && j == len-1) {
                left_sum[i] = right_sum[j] = 0;
                j--;
                continue;
            }
            suml += nums[i-1];
            sumr += nums[j+1];
            left_sum[i] = suml;
            right_sum[j] = sumr;
            j--;
        }
        for(int i = 0 ; i < len ; i++) {
            if(left_sum[i] == right_sum[i]) {
                return i;
            }
        }
        return -1;
    }
}

 

以上是关于2021.5.19的主要内容,如果未能解决你的问题,请参考以下文章

solidity笔记(11)——struct用法——2021.5.19

NFT合约解析——Counters.sol——2021.5.19

NFT合约解析——Counters.sol——2021.5.19

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js