力扣算法—两数相加
在刷完B站up主 遇见狂神说 的java基础篇之后,本人也就开始了力扣的刷题之路,刷的第一道题便是两数相加的算法题,那么这道题目在做完后在此进行一个简单的思路陈述和总结。
- 首先列出该算法题目要求
2 .解题思路
对于一个刚刷完java基础的人来说,用这种题练手最合适不过了,首先我能想到的方法就是利用循环嵌套进行答案的捕捉,当然这也可以称为暴力枚举法或者穷举法。
由于力扣中的代码编译区没有智能提醒和代码补全,我先在IntelliJ IDEA中进行代码的调试:
枚举过程如下:
先按照题目要求写出twoSum方法,利用循环嵌套去遍历传入的数组arrays中是否存在两个元素相加为目标值t,如果存在,先判断一下这两个元素是否为同一个元素,如果是同一个元素,则跳转到cont标签处继续循环,如果不是,则返回一个新的数组,其中存放着这两个元素的角标 i和j ,由于在循环体内部满足条件时该方法已经返回了一个数组,那么不满足的时候也需要一个返回值,否则程序会报错,这里请参考throw new IllegalArgumentException,因此在不满足时我们抛出一个自定义的异常即可,至此,该题目的主体就已经完成了,使用的时候只需要在main方法中进行调用即可。
主方法部分:
主方法内就很简单了,自己定义一个数组和一个整型去调试就好,其中可以看到有一个名为PrintArray()的方法调用了上面的twoSum()方法,关于PrintArray()方法的定义如下:
PrintArray()方法:
PrintArray方法主要是在学习java过程中经常用到的一个数组打印方法,因此被我搬过来直接使用了。
至此这道题就全部解答完毕了,调试成功,放到力扣题目解答区,测试,提交。
结果如下:
- 总结
(1) 此题在枚举过程中一定要注意避免返回同一个数组中的元素角标,例如: