leetCode算法(1)两数之和
【摘要】
推荐阅读:
我的CSDN 我的博客园 QQ群:704621321 我的个人博客
两数之和
给定一个整数数组 nums 和一个目标值...
推荐阅读:
两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
- 1
- 2
- 3
方法一:
求两数之和,可以考虑找到两个数,判断其和是否等于目标值,利用双重循环(冒泡法方式),找到两数。在用if语句判断是否满足目标值。
public class Solution {
public int[] TwoSum(int[] nums, int target) {
for(int i=0;i<nums.Length;i++)
{
for(int j=i+1;j<nums.Length;j++)
{
if(nums[i]+nums[j]==target)
{
return new int[] {i,j};
}
}
}
return new int[] {};
}
}
//判断数组中是否存在某个值,存在则返回其在数组中的下标,否则返回-1
public int IsExist(int[] nums, int value)
{
int id = Array.IndexOf(nums,value); // 这里的value就是你要查找的值
if(id==-1)
{
// 不存在
return -1;
}
else
{
// 存在
return id;
}
}
for(int j=i+1;j<nums.Length;j++)
{
if(nums[i]+nums[j]==target)
{
return new int[] {i,j};
}
}
}
return new int[] {};
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
方法二:
遍历数组中的每个值作为加数1,目标值-加数1=加数2,判断该加数2是否属于数组中的元素,且加数1!=加数2
public int[] TwoSum(int[] nums, int target) {
for(int i=1;i<nums.Length;i++)
{
int v=target-nums[i];//加数2
int idx=IsExist(nums,v)
if(idx>-1)
{
//存在加数2
if(v!=nums[i])
{
//两个加数不相等
return new int[] {i,idx}
}
}
}
}
--判断数组中是否存在某个值,存在则返回其在数组中的下标,否则返回-1
public int IsExist(int[] nums, int value)
{
int id = Array.IndexOf(nums,value); // 这里的value就是你要查找的值
if(id==-1)
{
// 不存在
return -1;
}
else
{
// 存在
return id;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
文章来源: unity3d.blog.csdn.net,作者:爱上游戏开发,版权归原作者所有,如需转载,请联系作者。
原文链接:unity3d.blog.csdn.net/article/details/104407198
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)