xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

leetcode 找出 int 数组的平衡点 All In One

leetcode 找出 int 数组的平衡点 All In One

左右两边和相等, 若存在返回平衡点的值(可能由多个); 若不存在返回 -1;

int [] arr = {2,3,4,2,4};

// number[]
const arr: number[] = [2,3,4,2,4];


// Array<number> 泛型
const arr: Array<number> = [2,3,4,2,4];
const  arr = [2,3,4,2,4];

https://repl.it/@xgqfrms/find-number-array-balance-point

https://repl.it/@xgqfrms/find-Int-array-balance-point

js version

// 找出 Int 数组平衡点

/**
 * 整形数组平衡点问题:平衡点指左边的整数和等于右边的整数和,
 * 求出平衡点位置,要求输入的数组可能是GB级
 *
 * 要求找出整型数组的一个平衡点(如果要找出所有平衡点的话,按此方法需要把每一个平衡点都存起来)
 */

const log = console.log;

// 'public' modifier cannot appear on a module or namespace element.ts
// public class IntArrayBalancePoint {

class IntArrayBalancePoint {
  constructor(args: String[]) {
    log(`args`, args)
    // const a: Object = [- 7 , 1, 5, 2, -5, 1];
    // const b: Object = [2, 3, 4, 2, 4];
    // const c: Object = [2, 3, 4, 3, 2];
    // const a: Number[] = [- 7 , 1, 5, 2, -5, 1];
    // const b: Number[] = [2, 3, 4, 2, 4];
    // const c: Number[] = [2, 3, 4, 3, 2];
    // interface Number
    // An object that represents a number of any kind.
    // All JavaScript numbers are 64-bit floating-point numbers.
    // const a: number[] = [- 7 , 1, 5, 2, -5, 1];
    // const b: number[] = [2, 3, 4, 2, 4];
    // const c: number[] = [2, 3, 4, 3, 2];
    // const t = new IntArrayBalancePoint([]);
    // log(t.findBalancePoint(a));
    // log(t.findBalancePoint(b));
    // log(t.findBalancePoint(c));
  }
  public findBalancePoint(a: number[]) {
  // findBalancePoint(a: number[]) {
    const len = a.length || 0;
    if (a === null) {
      return -1;
    }
    let sum = 0;
    let subSum = 0;
    for (let i = 0; i < len; i ++) {
        sum += a[i];
    }
    for (let i = 0; i < len; i++) {
        if (subSum === sum - subSum - a[i]) {
            // log(a[i]);
            return a[i];
        } else {
            subSum += a[i];
        }
    }
    return -1;
  }
}


const a: number[] = [- 7 , 1, 5, 2, -5, 1];
const b: number[] = [2, 3, 4, 2, 4];
const c: number[] = [2, 3, 4, 3, 2];

const t = new IntArrayBalancePoint([]);
log(t.findBalancePoint(a));
log(t.findBalancePoint(b));
log(t.findBalancePoint(c));

// args []
// -5
// -1
// 4

java version

package find_Int_array_balance_point;

// 找出 Int 数组平衡点

/**
 * 整形数组平衡点问题:平衡点指左边的整数和等于右边的整数和,
 * 求出平衡点位置,要求输入的数组可能是GB级
 *
 * 要求找出整型数组的一个平衡点(如果要找出所有平衡点的话,按此方法需要把每一个平衡点都存起来)
 */

public class IntArrayBalancePoint {
  public static void main(String[] args) {
    int[] a = { - 7 , 1, 5, 2, -5, 1} ;
    int[] b = {2, 3, 4, 2, 4} ;
    int[] c = {2, 3, 4, 3, 2} ;
    IntArrayBalancePoint t = new IntArrayBalancePoint();
    System.out.println(t.findBalancePoint(a));
    System.out.println(t.findBalancePoint(b));
    System.out.println(t.findBalancePoint(c));
    // t.findBalancePoint(a);
    // t.findBalancePoint(b);
    // t.findBalancePoint(c);
  }
  public int findBalancePoint(int[] a) {
    if (a == null) {
        return -1;
    }
    long sum = 0l;
    long subSum = 0l;
    for ( int i = 0 ; i < a.length; i ++ ) {
        sum += a[i];
    }
    for (int i = 0; i < a.length; i ++ ) {
        if (subSum == sum - subSum - a[i]) {
            // System.out.println(a[i]);
            return a[i];
        } else {
            subSum += a[i];
        }
    }
    return -1;
  }
}

二叉树 / 平衡二叉树 / 满二叉树 / 完全二叉树 / 二叉查找树

https://juejin.im/entry/5afb9fb66fb9a07ab458cc0d

https://zhuanlan.zhihu.com/p/56066942

https://blog.csdn.net/qq_24885695/article/details/75268318

题目

根据一个数组,找出其平衡点,也就是该点左边的和等于右边的和; 一个数组可能有多个平衡点;

注意:数组至少有3个元素,才能有平衡点存在, 不存在返回 -1;

https://www.cnblogs.com/tomato0906/articles/7417798.html

P230. 寻找数组的平衡点

https://algocasts.io/episodes/8eGx0zGM

leetcode

724. Find Pivot Index / 724. 查找枢轴索引

724. 寻找数组的中心下标

https://leetcode.com/problems/find-pivot-index/

lintcode

1068 · 寻找数组的中心索引

https://www.lintcode.com/problem/1068/

balanced binary tree

平衡二叉树

https://leetcode-cn.com/problems/balanced-binary-tree/

JavaScript中的数据结构和算法学习

https://juejin.im/post/594dfe795188250d725a220a

剑指Offer笔记

https://xmoyking.github.io/2018/03/27/js-offer-algorithms5/

  1. 问题38 数字在排序数组中出现的次数
  2. 问题39 二叉树的深度
    2.1. 问题39.2 平衡二叉树
  3. 问题40 数组中只出现一次的数字
  4. 问题41 和为S的两个数字
    4.1. 问题41.2 和为S的连续正数序列
  5. 问题42 翻转单词顺序
    5.1. 问题42.2 左旋转字符串
  6. 问题43 n个骰子的点数
  7. 问题44 扑克牌的顺子
  8. 问题45 圆圈中最后剩下的数
  9. 问题46 求1+2+3+…+n
  10. 问题47 不用加减乘除做加法

refs

https://www.iteye.com/blog/jerryqiu-252422

https://www.cnblogs.com/tomato0906/articles/7417798.html



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2020-06-20 17:05  xgqfrms  阅读(329)  评论(4编辑  收藏  举报