Java 力扣第一题(两数之和)简单

Java 力扣第一题(两数之和)简单,第1张

Java 力扣第一题(两数之和)简单

废话不多说,直接上干货

Leetcode每日一题

2021/10/18开启,有的人夜里去看海,有的人力扣第一题就做不出来

犹记得那次在刘老师强推下开了力扣的刷题之旅,

用打开力扣APP

第一题,选择简单模式,轻车熟路,啧啧啧

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

这不是有手就行吗?

格局打开,直接拿下!

看下题目要求

 

啊这???等等,What’s up。我手呢??

由于力扣是有些类似于蓝桥杯算法竞赛这样的输入输出纯IO根据案例判断正确与否的

输入的是 nums = [2,7,11,15], target = 9

那么问题就来了

如何去掉英文数组名Nums 和符号 = 【 】 , 将我们所需要的有效的整数提取出来呢?

(因为我第一次刷题是用APP,不知道在pc答题只用写solution这个核心方法)

从八月初开始接触力扣,因为第一题的将输入中的有效数字接受提取搞不出来直接劝退。

时隔两月,感谢那个在10.15日周五夜里手把手教我如何用力扣刷题并且用一个hasNextInt()敦敦教诲的杰哥@沉默着忍受

(先不@好叭,等我博客写的跟我哥一样牛批不丢他人了再@~)

关于hasNextInt()方法的使用,请允许我贴个大佬的帖子,方便我后续复习:

https://blog.csdn.net/weixin_45152202/article/details/116226276?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163456316016780261923794%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163456316016780261923794&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-116226276.pc_search_result_control_group&utm_term=JAVA+hasNextInt&spm=1018.2226.3001.4187

对了,这是那天夜里老哥传我的书,今天看了个知识点,贴在这里,

对Public static void main(String args[ ] )有了新的理解

 

 

再回头逐行解读力扣的第一道题吧

下面用到第0个知识点!

方法头里 返回值类型是 整形数组

public int[] twoSum(int[] nums, int target) 

那么我们的返回值就要注意,也是return 数组名;

数组名即可!

两层for循环嵌套,如果找到合适的index下标i,j能凑出来

nums[i]+nums[j]==target;

那么直接返回

return new int[ ]{I,j};

对于数组的声明不熟悉的可以看一下这位大佬的帖子,非常详尽!

https://blog.csdn.net/nishiwodebocai21/article/details/96484891?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163456341016780366578965%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163456341016780366578965&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-96484891.pc_search_result_control_group&utm_term=JAVA%E6%95%B0%E7%BB%84&spm=1018.2226.3001.4187

此处注意,编译器会自动判断你在for循环里满足判断条件,会按照上述语句返回。

那么如果不满足呢?出了for循环外,

这就要求我们在跳出for循环后直接加上

注意这句话一定要加在跳出循环后保底有返回值哦

return new int[0];

接下来就是solution方法的核心语句了

由于题目给出的输入样例都是正整数,

所以我自作聪明搞了个如下的代码

class Solution
{
    public int[] twoSum(int[] nums, int target) 
    {
		
    	for(int i=0;i=nums[i])
    		{
    			for(int j=i+1;j 

当数组中都是正整数进行凑数时,因为目标值target是两数相加的和,如果target已大于其中一个正整数,那么显然没必要再继续看下去,直接抬走下一位

结果没想到,终究是你旭格局小了

Leetcode输入样例的数组中有负数!!!

 

 

终究是官方技高一筹啊!

所以读者大大们刷题一定要看清要求呀!

这只是第一题,万事开头难,不要还没开始就结束了哇

最后附上小菜鸡的力扣第一题源码:

 

class Solution
{
    public int[] twoSum(int[] nums, int target) 
    {
        int l=nums.length;
        for(int i =0;i 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4656384.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存