DEV Community

Harsh Prajapat
Harsh Prajapat

Posted on

Leet Code Problem Solutions

✅ Swift Program: Integer to Roman #12

func intToRoman(_ num: Int) -> String {
        let romanMap: [(symbol: String, value: Int)] = [
            ("M", 1000),
            ("CM", 900),
            ("D", 500),
            ("CD", 400),
            ("C", 100),
            ("XC", 90),
            ("L", 50),
            ("XL", 40),
            ("X", 10),
            ("IX", 9),
            ("V", 5),
            ("IV", 4),
            ("I", 1)
        ]

        var number = num
        var result = ""

        for (symbol, value) in romanMap {
            while number >= value {
                result += symbol
                number -= value
            }
        }

        return result
    }
Enter fullscreen mode Exit fullscreen mode

✅ Swift Program: Roman to Integer #13

func romanToInt(_ s: String) -> Int {
    let romanMap: [Character: Int] = [
        "I": 1,
        "V": 5,
        "X": 10,
        "L": 50,
        "C": 100,
        "D": 500,
        "M": 1000
    ]

    let chars = Array(s)
    var result = 0
    var prevValue = 0

    for char in chars.reversed() {
        let value = romanMap[char] ?? 0

        if value < prevValue {
            result -= value
        } else {
            result += value
        }

        prevValue = value
    }

    return result
}

// Example usage
print(romanToInt("MCMXCIV"))  // Output: 1994
Enter fullscreen mode Exit fullscreen mode

✅ Swift Program: Two Sum #1

 var result = [Int]()
 let target = 6

 for i in 0..<nums.count {
     for j in i+1..<nums.count {
        if nums[i] + nums[j] == target {
           result.append(i)
           result.append(j)
        }
     }
  }

 return result
Enter fullscreen mode Exit fullscreen mode

✅ Swift Solution Using HashMap (Optimal — O(n)) - Two Sum

func twoSum(_ nums: [Int], _ target: Int) -> [Int] {
var map = Int: Int // value: index

for (index, num) in nums.enumerated() {
    let complement = target - num
    if let foundIndex = map[complement] {
        return [foundIndex, index]
    }
    map[num] = index
}

return []  // No solution (but per problem, a solution is guaranteed)
Enter fullscreen mode Exit fullscreen mode

}

🔍 Example Usage:

let nums = [2, 7, 11, 15]

let target = 9

print(twoSum(nums, target))  // Output: [0, 1] (because 2 + 7 = 9)
Enter fullscreen mode Exit fullscreen mode

✅ Swift Solution (Two Pointers) 27. Remove Element

func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
    var i = 0

    for num in nums {
        if num != val {
            nums[i] = num
            i += 1
        }
    }

    return I
}
Enter fullscreen mode Exit fullscreen mode

🔍 Example:

var nums = [3, 2, 2, 3]
let val = 3

let length = removeElement(&nums, val)
print("New length: \(length)")           // Output: 2
print("Updated array: \(nums.prefix(length))") // Output: [2, 2]
Enter fullscreen mode Exit fullscreen mode

Top comments (0)