【leetcode】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()方法的使用,请允许我贴个大佬的帖子,方便我后续复习:

Java中hasNextInt()方法_柠檬鱼的博客-CSDN博客_java中hasnextint()

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

对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};

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

java数组完全解析(干货满满)_swordsmanye的博客-CSDN博客_java数组

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

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

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

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

return new int[0];

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

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

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

class Solution
{
    public int[] twoSum(int[] nums, int target) 
    {
		
    	for(int i=0;i<nums.length;i++)
    	{
    		if (target<nums[i])
    			continue;
    		if(target>=nums[i])
    		{
    			for(int j=i+1;j<nums.length;j++)
    			{
    				if(nums[i]+nums[j]==target){return new int[] {i,j};}
    			}
    		}
    	}
		return  new int[0] ;
    }
}

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

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

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

终究是官方技高一筹啊!

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

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

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

class Solution
{
    public int[] twoSum(int[] nums, int target) 
    {
        int l=nums.length;
        for(int i =0;i<l;i++)
        {
            for(int j=i+1;j<l;j++)
            {
                if(target==nums[i]+nums[j])
                {
                    return new int[]{i,j};
                }
            }
        }
        return new int[0];
    }
}

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻根根呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值