废话不多说,直接上干货
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欢迎分享,转载请注明来源:内存溢出
评论列表(0条)