leetcode地址:5. 最长回文子串

解答参考:动态规划、中心扩散、Manacher 算法

问题描述

一个整数数组 nums,编写一个能够返回数组 “中心索引” 的方法。数组 中心索引 是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,返回 -1 。如果数组有多个中心索引,应该返回最靠近左边的那一个。注意:中心索引可能出现在数组的两端。比如nums = [1, 7, 3, 6, 5, 6],中心索引为3,索引3的左侧数之和 (1 + 7 + 3 = 11),与右侧数之和 (5 + 6 = 11) 相等。

算法思路

采用天平思想解决该问题

手上有一个木棍,怎么找到一个支点能平放?像这样:

假设这根木棍的重量是由多段不同重量的小方格组成,如图:

为了达到平衡,就要移动下面的三角,让左边的重量和右边的重量相等

这题就是在知道所有小方格的重量后来找到一个达来平衡的支点。也就是要找到三个元素:支点、支点左边棍子的重量、支点右边棍子的重量

具体方法:

  1. 先算出整个棍子的重量,可以得出:总重量 - 左边重量 = 右边重量
  2. 只要在移动方格的同时达到:左边重量 = 右边重量,就可以了。
  3. 在算的过程中,支点是不能算成左右的重量的,所以最后得出的公式就是:

对应到此题

class Solution {public int pivotIndex(int[] nums) {int left_sum = 0, right_num = 0;for(int i=0; i<nums.length; i++){right_num += nums[i];}for(int i=0; i<nums.length; i++){left_sum += nums[i];if( right_num == left_sum){return i;}right_num -= nums[i];}return -1;}
}

天平思想—寻找数组中心索引相关推荐

  1. java 数组的索引_java如何寻找数组中心索引

    java如何寻找数组中心索引 发布时间:2020-04-21 10:10:24 来源:亿速云 阅读:65 作者:小新 本篇文章和大家了解一下java如何寻找数组中心索引.有一定的参考价值,有需要的朋友 ...

  2. 724寻找数组中心索引之Leecode—数组篇(前缀法)

    寻找数组中心索引 链接:https://leetcode-cn.com/problems/find-pivot-index/ 题目:给你一个整数数组 nums,请编写一个能够返回数组 "中心 ...

  3. python 寻找数组的中心索引_Leetcode724:寻找数组的中心索引(java、python3)

    寻找数组的中心索引 给定一个整数类型的数组 nums,请编写一个能够返回数组"中心索引"的方法. 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相 ...

  4. python 寻找数组的中心索引_Leetcode724查找数组Python的中心索引,LeetCode724,寻找,python...

    寻找数组的中心索引 这一次打卡不知道又摸了多久的鱼,周五没做题,周日补上. 题目 给定一个整数类型的数组 nums,请编写一个能够返回数组"中心索引"的方法. 我们是这样定义数组中 ...

  5. leetcode 724. 寻找数组的中心索引

    给定一个整数类型的数组 nums,请编写一个能够返回数组 "中心索引" 的方法. 我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和. 如 ...

  6. 力扣724.寻找数组的中心索引

    题目描述 给定一个整数类型的数组 nums,请编写一个能够返回数组 "中心索引" 的方法. 我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加 ...

  7. C#LeetCode刷题之#724-寻找数组的中心索引( Find Pivot Index)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3742 访问. 给定一个整数类型的数组 nums,请编写一个能够返 ...

  8. 724. 寻找数组的中心索引

    链接:724. 寻找数组的中心索引 题解:https://leetcode-cn.com/problems/find-pivot-index/solution/xun-zhao-shu-zu-de-z ...

  9. 每日一题:leetcode724.寻找数组的中心索引

    题目描述 题目分析 今天这道题原本很简单,我都没打算写题解,当时用手机看的题目,我想着我三分钟应该能写出来,结果没想到wa了三发... 对待简单题不要轻视,对待难题不要畏难. 今天的主要问题是没有看数 ...

最新文章

  1. 细数C++和C的差别
  2. Android学习笔记之Fragment的两种使用方法
  3. python打开文件_喜大普奔 | 如何在Win10下利用Python打开grib文件
  4. set column oracle,Oracle 用一个表字段更新另一个表字段三种方法
  5. java二级考试真题_计算机等级考试真题2(JAVA)
  6. js递归树结构计算每个节点的叶子节点的数量并且输出
  7. python循环语句笔记
  8. mongodb配置文件启动linux,Linux运维知识之Mongodb启动方法:设定参数启动;从设置文件启动...
  9. 设计一个简单HTML爵士音乐网页(HTML+CSS)
  10. Win7停服,引发国产操作系统“蝴蝶效应”
  11. 安安静静学JAVA(七)
  12. [附源码]java毕业设计网络学习平台
  13. 报盘、还盘的英语短句(建议收藏)
  14. Bit、Byte、KB
  15. h5唤醒微信支付PHP,app内嵌微信h5支付,支付服务唤起支付处理
  16. linux9.0安装教程,RedHat linux 9.0详细图文安装教程
  17. 再次学习MOOC《Geogebra的教学应用》的过程记录与体会(1)
  18. Linux微信1001无标题,微信个性签名1001无标题
  19. Tomcat应用部署是否要一个萝卜一个坑?
  20. 嵌入式开发常见通信协议

热门文章

  1. PHP自学4——通过函数将数组数据输出到html的Table标签中(使用函数的例子)
  2. 思考题-算法小思考题
  3. 文件管理(NSfilemanager)
  4. android开发------Activity生命周期
  5. PHP 学习 第一天
  6. Demo:充分利用 Ajax 技术 来体现页面局部刷新 效果(获取天气预报情况)
  7. Android中AutoCompleteTextView的特殊使用方法
  8. 【18】让接口容易被正确使用,不易被误用
  9. vue/cli 3.0 font-size随屏幕大小变化而变化 rem设置
  10. error C2504: “XXXXXXX”: 未定义基类