leetCode算法(1)两数之和

举报
爱上游戏开发 发表于 2022/07/01 22:35:37 2022/07/01
【摘要】 推荐阅读:  我的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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。