当前位置: 首页 > news >正文

寻找数组的中心索引

题目

class Solution {public int pivotIndex(int[] nums) {for (int i = 0; i< nums.length; i++){int left = 0;        //每次进行重置int right = 0;for (int j = i+1; j<nums.length; j++) {right += nums[j];}for (int j = i-1; j>=0; j--){left += nums[j];}if (left == right) {return i;    //返回索引;如果有多个符合值,直接返回第一个,不需要把所有符合值都找出来                   } }return -1;      //不用加if,如果有中心下标,已经返回i}
}

class Solution {public int pivotIndex(int[] nums) {int totalnum = 0;for (int num : nums) {totalnum += num;}for (int i = 0; i< nums.length; i++){int left = 0;int right = 0;for (int j = i+1; j<nums.length; j++) {right += nums[j];}left = totalnum - right - nums[i];if (left == right) {return i;} }return -1;}
}

class Solution {public int pivotIndex(int[] nums) {int totalnum = 0;for (int num : nums) {totalnum += num;}int left = 0;int right = 0;for (int i = 0; i< nums.length; i++){left = totalnum - right - nums[i];if (left == right) {return i;} right += nums[i];}return -1;}
}

class Solution {public int pivotIndex(int[] nums) {int totalnum = 0;for (int num : nums) {totalnum += num;}int right = 0;for (int i = 0; i< nums.length; i++){if (2*right + nums[i] == totalnum) {    //left == rightreturn i;} right += nums[i];}return -1;}
}

总结:

效率优化:先计算总和,再动态更新两侧和

明确返回:数组下标指的是索引

代码冗余:循环结束,代表没有找到数组下标,直接返回-1,不需要再加条件

判断条件:left == right,  2*left + nums[i] = totalnum

提示条件:根据提示条件可得,数组范围【10^-7, 10^7】, int类型数据范围【(-2)^31, 2^31 - 1】,所以使用int类型数组即可。

http://www.lryc.cn/news/623856.html

相关文章:

  • 如果用ApiFox调用Kubernetes API,需要怎么设置证书?
  • Day16 多任务(2)
  • USB-A 3.2 和 USB-A 2.0的区别
  • Day27 装饰器
  • 从零配置YOLOv8环境:RTX 3060显卡完整指南
  • AI评测的科学之道:当Benchmark遇上统计学
  • 48.Seata认识、部署TC服务、微服务集成
  • [Responsive theme color] 动态更新 | CSS变量+JS操控 | 移动端-汉堡菜单 | 实现平滑滚动
  • 实现用户输入打断大模型流式输出:基于Vue与FastAPI的方案
  • GaussDB 数据库架构师修炼(十三)安全管理(5)-全密态数据库
  • 【每日一题】Day 6
  • 凸函数与损失函数
  • 开源数据发现平台:Amundsen Search Service 搜索服务
  • Python注解
  • 零墨云A4mini打印机设置电脑通过局域网络进行打印
  • C#对象的本地保存与序列化详解笔记
  • GitLab CI/CD、Jenkins与GitHub Actions在Kubernetes环境中的方案对比分析
  • 【Golang】:错误处理
  • 任务型Agent架构简介
  • Visual Studio Code 基础设置指南
  • 【R语言】R 语言中打印含有双引号的字符串时会出现 “\” 的原因解析
  • GaussDB常用术语缩写及释义
  • 路由器配置之模式
  • 4.Ansible自动化之-部署文件到主机
  • nodejs 中间件
  • gitee 流水线+docker-compose部署 nodejs服务+mysql+redis
  • 【计算机网络面试】TCP/IP网络模型有哪几层
  • Matlab数字信号处理——基于最小均方误差(MMSE)估计的自适应脉冲压缩算法复现
  • ThinkPHP8学习篇(三):控制器
  • 7.Ansible自动化之-实施任务控制