---恢复内容开始---

一直想在leetcode上面刷题,但是java刚刚摸了一下门,所以迟迟没有动手,今天做了第一道题,感觉自己实在菜的不行,但是还是学到了很多东西,

就记录一下遇到的问题。

  首先是题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对

应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

  先看下自己写出来的代码:

  

  可以看出编程的思想还是很原始的。运行时出现了问题:

1.

这其实是数组越界问题,问题的原因在于,数组定义是从0到length-1的,而当我的i=length的时候就已经超出了数组的最大表示范围,所以显示数组越界。

其实我觉得这和我这段时间用verilog写硬件有关系,因为用那个的时候for循环里面都是用的<=,实际上我在for(;;)里面也用逗号进行的分隔(真的是

功夫不到家)。那么这是第一个错误。实际上这里还有一个错误,就是i的初始值应该为0。

2.这时出现了第二个错误:

这个错误的意思是没有返回值,我们发现,在数组内部没有两个数的和是target时是没有返回值的。所以在这里加上return null。

这里就运行成功了。

再来看下大佬的代码:

发现这里面有一行

这里面有一个throw的用法,throw是用来抛出异常状态的,改天另写一篇关于学习throw的,然而我在运行大佬代码的时候发现,会显示

这个地方其实不是原来代码出现问题了,而是上文说的,初始化i应该=0,而我原来的代码里i=1,这里为什么会输出这样的结果呢?

我认为是这样,我们测试用的数组是【2,7,11,15】,target 9

这样在运行的时候,因为是从7开始检索的,那么显然循环中没有发现和为9的两个数,于是开始运行throw语句,抛出了异常:IllegalArguementException

最新文章

  1. dagger2系列之依赖方式dependencies、包含方式(从属方式)SubComponent
  2. Asp.net使用代码修改配置文件的节点值
  3. window7下使用vagrant打造lamp开发环境(一)
  4. 2013年国庆节前51Aspx源码发布详情
  5. Open vSwitch FAQ (一)
  6. c# TextReader/TextWriter 的类
  7. 使用servlet实现文件上传
  8. [C#]网络编程系列专题二:HTTP协议详解
  9. OC相关-02:oc和c的基本差异
  10. hibernate 一张数据表的流程
  11. 前端MVVM学习之KnockOut(一)
  12. ProgressBar、ProgessDialog用法解析
  13. 一张图了解Spring Cloud微服务架构
  14. Eclipse创建第一个Spring Boot项目
  15. 让Mustache支持简单的IF语句
  16. 怎样删除C/C++代码中的所有注释?浅谈状态机的编程思想
  17. 使用kubeadm部署kubernetes1.9.1+coredns+kube-router(ipvs)高可用集群
  18. dc-vastinspector
  19. 洛谷 P1563 玩具谜题
  20. Testing Round #12 A,B,C 讨论,贪心,树状数组优化dp

热门文章

  1. springboot使用memcache缓存
  2. [淘宝客技术篇005]如何取站点id和推广位id
  3. 粗糙版ORM(附详细注释)
  4. linux常见报错
  5. PTA A1013
  6. docker harbor搭建笔记
  7. (一)spring 高级装配-@Profile
  8. [C++] 空间配置器——allocator类
  9. 从ASP.Net Core Web Api模板中移除MVC Razor依赖项
  10. 转载:Docker入门只需看这一篇就够了