美文网首页
leetcode之Swift --Easy

leetcode之Swift --Easy

作者: 果子27 | 来源:发表于2018-04-19 16:40 被阅读0次

    1. 两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
    你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    
    func twoSum(_ nums: [Int], _ target: Int) -> [Int]
    {
        var dic = [Int: Int]()
        for i in 0..<nums.count
        {
            if let a = dic[target - nums[i]]
            {
                if i != a
                {
                    return [i,a]
                }
            }
            else
            {
                dic.updateValue(i, forKey: nums[i])
            }
        }
        return []
    }
    

    7. 反转整数

    给定一个 32 位有符号整数,将整数中的数字进行反转。
    示例 1:

    输入: 123
    输出: 321
    

    示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:
    假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

    func reverse(_ x: Int) -> Int
    {
        let max = INT32_MAX
        let positive = x >= 0
        var y = positive ? x : -x
        
        var result = 0
        while y > 0
        {
            result = result * 10 + y % 10
            if (result > max)
            {
                return 0
            }
            y = y / 10
        }
        return positive ? result : -result
    }
    

    后续会继续更新。。。

    相关文章

      网友评论

          本文标题:leetcode之Swift --Easy

          本文链接:https://www.haomeiwen.com/subject/yogwkftx.html