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

LeetCode第1题 - 两数之和

题目

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

解答

class Solution {public int[] twoSum(int[] nums, int target) {int length = nums.length;int olen = length - 1;// 控制循环的结束条件,避免越界int ilen = length;int value = 0;int i = 0;int j = 1;for (i = 0; i < olen; ++i) {value = target - nums[i];for (j = i + 1; j < ilen; ++j) {if (value == nums[j]) { // 运算得到正确的结果后,要及时退出循环return new int[] {i, j};    }}}return null;}
}

要点
本质而言,这道目并不复杂,使用嵌套循环,遍历数组即可。
在编码时,依据题目给出的提示信息,做出正确的处理,比如

  • 不能重复利用这个数组中同样的元素,意味着内层循环需要以外层循环为起点,否则遇到如下用例时,将输出错误的结果。

给定 nums=[2, 5, 5, 3],target = 10
因为 nums[1] + nums[2] = 10
所以返回[1, 2],而不是[1, 1]。

  • 运算得到正确结果后,需要及时退出循环,返回结果。
  • 控制循环结束条件,避免出现访问越界。
http://www.lryc.cn/news/269714.html

相关文章:

  • (14)Linux 地址空间的理解
  • Java中的设计模式
  • Hadoop(2):常见的MapReduce[在Ubuntu中运行!]
  • Unity | 快速修复Animation missing错误
  • ssm基于web的志愿者管理系统的设计与实现+vue论文
  • C++运算符重载(插入and提取)
  • C#高级 08Json操作
  • 封装uniapp签字板
  • Mybatis行为配置之Ⅳ—日志
  • Java设计模式-外观模式
  • js+css实现颜色选择器
  • Go语言中的包管理工具之Go Modules的使用
  • 【c/c++】指针例图基础详解
  • TCP/IP的网络层(即IP层)之IP地址和网络掩码,在视频监控系统中的配置和应用
  • 代码随想录刷题 | Day1
  • 查看IOS游戏FPS
  • 挑战Python100题(7)
  • HarmonyOS自学-Day4(TodoList案例)
  • LTPI协议的理解——2、LTPI实现的底层架构
  • CentOS 8.2 安装 Mysql 5.7.26(单机)
  • Vue Tinymce富文本组件自定义带下拉框的操作按钮
  • YOLOv5算法进阶改进(10)— 更换主干网络之MobileViTv3 | 轻量化Backbone
  • Java UDP
  • Halcon阈值处理的几种分割方法threshold/auto_threshold/binary_threshold/dyn_threshold
  • FB混合C语言编译
  • 【机器学习】深度学习概论(二)
  • 词法语法语义分析程序设计及实现,包含出错提示和错误恢复
  • Linux的capability深入分析
  • 【自然语言处理】类似GPT的模型
  • 【Unity】【FBX】如何将FBX模型导入Unity