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
}
后续会继续更新。。。
网友评论