题目起源:力扣(LeetCode)
链接:https://leetcode-cn.com/probl...
题目形容
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
你能够假如每种输出只会对应一个答案。然而,数组中同一个元素在答案里不能反复呈现。
你能够按任意程序返回答案
算法思维
结余每种输出只会对于一个答案,只须要思考第一个呈现的符合要求的答案就好了。采纳两层for循环,进行暴力遍历。
代码展现
class Solution { public int[] twoSum(int[] nums, int target) { int[] result=new int[2] ; for(int i = 0;i < nums.length-1;i++){ for(int j = i+1;j < nums.length;j++){ if(nums[i]+nums[j]==target){ result[0]=i; result[1]=j; return result; } } } return null; }}
感触(启发)
- 第一次在LeetCode刷题,作为一个程序员,始终都是据说过,胆怯本人做不进去就不敢入手。当我开始做时,只管想不到甚至看不懂大佬那些奇妙的办法,对于那些哈希形式只是晓得实践而写不进去。正是这样,我能力更快提高,并理解到该学些什么。今后,每天都要写一份笔记。愿大四秋招能顺利进入大厂。
- 数组初始化以及在函数中的传递。这是本次我曾经想分明如何应用蛮力法却仍旧调试了一个多小时的起因。
数组的初始化分为动态初始化和动静初始化,上面为例子
1. int[] result = new int[]{0,1};//动态初始化 // 动态初始化:程序员决定数组元素的初始值,零碎决定长度。 2. int[] result = new int[2];//动静初始化 // 动静初始化:程序员只决定数组元素的长度,零碎调配元素初始值.
- PS:int(初始值为0),float(初始值为0.0),char(初始值为‘\u0000’),boolean(初始值为false)
对于数组的传递,间接用回传的是a[0]的地址地位,间接写a就行了
- 函数标准化。间接只是要求实现性能并没有思考标准接口以及多态(适宜多种状况),当初要规范化。对于一些模块化的函数还是要纯熟利用。比方明天题目里的String[]转换成int []是提供好的。如果本人写的话,齐全写不进去。
明天例子如下
public static int[] stringToIntegerArray(String input) { input = input.trim(); input = input.substring(1, input.length() - 1); if (input.length() == 0) { return new int[0]; } String[] parts = input.split(","); int[] output = new int[parts.length]; for(int index = 0; index < parts.length; index++) { String part = parts[index].trim(); output[index] = Integer.parseInt(part); } return output; } public static String integerArrayToString(int[] nums, int length) { if (length == 0) { return "[]"; } String result = ""; for(int index = 0; index < length; index++) { int number = nums[index]; result += Integer.toString(number) + ", "; } return "[" + result.substring(0, result.length() - 2) + "]"; } public static String integerArrayToString(int[] nums) { return integerArrayToString(nums, nums.length); }