将来的工作需要用到Swift,可是看语法什么的好无聊啊,最近又恰好发现leetCode支持Swift,以前又没刷过leetCode,于是就借着这个机会,边刷边学学Swift。
题目:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1]
题目本身没什么意思,要在时间复杂度o(n)内求解,主要就是利用map记录一下value-index。这里主要是学习一下Swift的语法,下面是leetCode上别人的solution。关键的语法点就是数组,字典的使用,变量的定义,if-else。
class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var selectedIndices = [Int:Int]()
for (index, element) in nums.enumerated()
{
selectedIndices[element] = index
}
for (index, element) in nums.enumerated()
{
let compliment = target - element
if let selectedIndex = selectedIndices[compliment]
{
if selectedIndex != index
{
return [index, selectedIndex]
}
}
}
return []
}
}
本文介绍如何使用Swift解决LeetCode上的经典问题“两数之和”。通过该问题学习Swift的基础语法,如数组、字典的使用及变量定义等,并实现O(n)的时间复杂度。

1万+

被折叠的 条评论
为什么被折叠?



