找出 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. 序列化 serialize

    Serializable 序列化  The byte stream created is platform independent. So, the object serialized on one ...

  2. Win10安装CUDA 10.2

    目录 一.安装VS2015 二.安装CUDA 10.2 2.1 安装前工作 2.2 CUDA 10.2下载安装过程 2.2.1 下载CUDA 10.2 2.2.1.1 官网下载地址 2.2.1.2 网 ...

  3. 在项目中如何自定义的Eslint配置

    一.设置js风格的缩进为4个空格 在你的前端项目中找到.eslintrc.js文件,如图 module.exports = { root: true, parserOptions: { parser: ...

  4. 五:Spring Security 中的角色继承问题

    Spring Security 中的角色继承问题 以前的写法 现在的写法 源码分析 SpringSecurity 在角色继承上有两种不同的写法,在 Spring Boot2.0.8(对应 Spring ...

  5. SSM、SSH框架搭建,面试点总结

    文章目录 1.SSM如何搭建:三个框架的搭建: 2.SSM系统架构 3.SSM整合步骤 4.Spring,Spring MVC,MyBatis,Hibernate个人总结 5.面试资源 关于SSM.S ...

  6. postfix “ Sender address rejected: not logged in”

      一.问题 先说一下问题,我们公司有两台邮件服务器,分别是不同的域名但是用的是同一个用户认证,最近老有人反应说,有匿名邮件就是通过类似这种网站,进行使用你们公司的SMTP邮件服务器进行发送垃圾邮件 ...

  7. Kubernetes --(k8s)Job、CronJob

    Job https://www.kubernetes.org.cn/job https://www.kubernetes.org.cn/cronjob Job负责批量处理短暂的一次性任务 (short ...

  8. java 将内容写入文件 txt

    @Test //将内容写入文件 public void xieru() throws Exception{ FileWriter fileWriter=new FileWriter("d:\ ...

  9. (3)UNIX/Linux系统结构

    UNIX/Linux 系统可以粗糙地抽象为 3 个层次,如图所示.底层是 UNIX/Linux 操作系统,即系统内核(Kernel):中间层是Shell层,即命令解释层:高层则是应用层. 1) 内核层 ...

  10. linux学习之---在linux服务器上跑一段Java代码

    经常在windows上进行开发,有时候,需要在Linux环境上跑一些程序测下代码,要怎么办才好嘞? 假设你对Java常用命令和linux常用命令已经基本熟悉,就可以直接按照以下步骤来啦,默认linux ...