找出 int 数组的平衡点

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

``java

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


```js
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

  1. ts
// 找出 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

refs

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

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

  1. java
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

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 不用加减乘除做加法

xgqfrms 2012-2020

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


找出 int 数组的平衡点 & 二叉树 / 平衡二叉树 / 满二叉树 / 完全二叉树 / 二叉查找树的更多相关文章

  1. 笔试题&amp;面试题:找出一个数组中第m小的值并输出

    题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...

  2. 找出数字数组中最大的元素(使用Math.max函数)

    从汤姆大叔的博客里看到了6个基础题目:本篇是第1题 - 找出数字数组中最大的元素(使用Match.max函数) 从要求上来看,不能将数组sort.不能遍历.只能使用Math.max,所以只能从java ...

  3. javascript 找出数字数组中最大的数

    找出数字数组中最大的数 var Match = (function(){ var arr = null; var len = 0; return { max:function(arr,len){ ar ...

  4. 找出整数数组中出现次数超过数组长度一半的元素(Java)

    Question:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字 package com.study.zhipengs.test; import java.util.Arrays; im ...

  5. 【LeetCode】找出所有数组中消失的数字

    [问题] 给定一个范围在  1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次.找到所有在 [1, n] 范围之间没有出现在数组中的数字. ...

  6. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}

    int [][]a={{3,2,6},{6,8,2,10},{5},{12,3,23}}; //先对二维数组进行遍历:然后把二维数组合成一个数组 int[] k=new int[11]; int q= ...

  7. 368. Largest Divisible Subset -- 找出一个数组使得数组内的数能够两两整除

    Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of ...

  8. 找出Java数组中不同的值

    public void deltp(PrintWriter out) { try{ PageData pd = new PageData(); pd = this.getPageData(); Str ...

  9. 15.找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}

    package com.bao; public class Erweim { public static void main(String[] args) { int[][]a={{3,2,6},{6 ...

随机推荐

  1. Spring听课笔记(tg)2

    配置Bean -- 配置形式:基于XML 文件的方式, 基于注解的方式 -- Bean的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法&实例工厂方法).FactoryBean -- ...

  2. FridaHook框架学习(2)

    FridaHook框架学习(2) 前言 学习过程参考https://bbs.pediy.com/thread-227233.htm. 逆向分析 安装并运行例子程序,可以看到这个例子是一个验证注册码的程 ...

  3. HBase二级索引、读写流程

    HBase二级索引.读写流程 一.HBse二级索引方案 1.1 基于Coprocessor方案 1.2 Phoenix二级索引特点 1.3 Phoenix 二级索引方案 二.HBase读写流程 2.1 ...

  4. 线上服务器CPU100%排查,Linux进程消耗查看

    线上服务器CPU100%排查,Linux进程消耗查看 1.排查步骤 1.1Linux下排查 1.1.1查消耗cpu最高的进程PID 1.1.2根据PID查出消耗cpu最高的线程号 1.1.3根据线程号 ...

  5. linux下安装 zookeeper-3.4.9并搭建集群环境

    本文主要记录作者在实践过程中实现在centos7环境下安装zookeeper并搭建集群的详细步骤,关于zookeeper本文将不做详细介绍,安装步骤详情如下: 前提准备:3台linux服务器(因为zo ...

  6. 使用ganglia 实现监控 hadoop 和 hbase(详细过程总结)

    一,环境准备 hadoop 2.8.2 分布式环境(三个节点 安装请参考 hadoop分布式环境安装) hbase 1.2.6  分布式环境(三个节点 ,安装参考hbase分布式环境安装 ) 主节点采 ...

  7. java HashMap and HashMultimap 区别

    http://stackoverflow.com/questions/19222029/what-is-difference-between-hashmap-and-hashmultimap The ...

  8. Java的awt包的使用实例和Java的一些提示框

    一.awt的一些组件 Label l1=new Label("姓名:"); //标签 Label l2=new Label("密码:"); TextField ...

  9. Berry Jam (前缀和)cf教育场

    距离上一篇博客又2个月了 寻思着该除除草了 教育场是真的好难 可能是因为我还是只菜鸡 哭唧唧 先说下题意:有2*n罐果酱,草莓和蓝莓,梯子在中间从梯子那开始往两边吃(可以一会左一会右),问最少吃多少果 ...

  10. python的re模块一些方法 && Tkinter图形界面设计 && 终止python运行函数 && python读写文件 && python一旦给字符串赋值就不能单独改变某个字符,除非重新给变量赋值

    Tkinter图形界面设计见:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton 终止python运行函数: 采用sys.exit(0)正 ...