Skip to content

Instantly share code, notes, and snippets.

View volkanbicer's full-sized avatar
🔥

Volkan Bicer volkanbicer

🔥
View GitHub Profile
@volkanbicer
volkanbicer / circle.swift
Created December 20, 2017 08:02
UIImage circle extension
extension UIImage {
class func circle(diameter: CGFloat, color: UIColor, _ stroke: CGFloat, _ strokeColor: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(CGSize(width: diameter, height: diameter), false, stroke)
let ctx = UIGraphicsGetCurrentContext()!
ctx.saveGState()
let rect = CGRect(x: stroke/2, y: stroke/2, width: diameter - stroke, height: diameter - stroke)
ctx.setFillColor(color.cgColor)
ctx.setLineWidth(stroke)
ctx.setStrokeColor(strokeColor.cgColor)
@volkanbicer
volkanbicer / selectionSampling.swift
Created November 12, 2017 20:44
Selection Sampling
func select<T>(from a: [T], count k: Int) -> [T] {
var a = a
for i in 0..<k {
let r = random(min: i, max: a.count - 1)
if i != r {
swap(&a[i], &a[r])
}
}
return Array(a[0..<k])
}
@volkanbicer
volkanbicer / inorderTraversal.swift
Created November 12, 2017 20:27
Binary tree in order traversal
/**
* Definition for a binary tree node.
* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
@volkanbicer
volkanbicer / excelColumnTitle.swift
Created November 12, 2017 20:12
Excel Sheet Column Title
let chars = (97...122).map{Character(UnicodeScalar($0))}
func convertToTitle(_ n: Int) -> String {
if n == 0{ return "" }
return convertToTitle((n-1)/26) + "\(chars[((n-1) % 26)])".uppercased()
}
@volkanbicer
volkanbicer / groupAnagrams.swift
Created November 12, 2017 20:10
Group anagrams together.
func groupAnagrams(_ strs: [String]) -> [[String]] {
var dic = [String: [String]]()
for (i, value) in strs.enumerated(){
let key = String(value.characters.sorted {$0<$1})
if dic[key] == nil {
dic[key] = [value]
}else{
dic[key]?.append(value)
}
}
@volkanbicer
volkanbicer / intersection.swift
Created November 12, 2017 19:54
Intersection in swift
// Each element in the result must be unique.
func intersection(_ nums1: [Int], _ nums2: [Int]) -> [Int] {
var set = Set<Int>()
var intersect = Set<Int>()
for i in nums1{
set.insert(i)
}
for i in nums2{
if set.contains(i){
intersect.insert(i)
@volkanbicer
volkanbicer / productExceptSelf.swift
Created November 12, 2017 14:02
Product of array except self
func productExceptSelf(_ nums: [Int]) -> [Int] {
var result = nums
var temp = 1
for i in 0..<nums.count{
result[i] = temp
temp *= nums[i]
}
temp = 1
for i in 0..<nums.count{
@volkanbicer
volkanbicer / reverseInteger.swift
Created November 12, 2017 13:39
Rever 32 bit signed integer. Return 0 if reversed overlfows
func reverse(_ x: Int) -> Int {
var r = 0
var y = x
while y != 0 {
r = r*10 + y%10
y = y/10
}
if r < Int32.min || r > Int32.max {
return 0
}
/**
* Definition for singly-linked list.
* public class ListNode {
* public var val: Int
* public var next: ListNode?
* public init(_ val: Int) {
* self.val = val
* self.next = nil
* }
* }
@volkanbicer
volkanbicer / topKFrequentElements.swift
Created November 12, 2017 12:05
Top K frequent elements in array with bucket sort algorithm
func topKFrequentElements(_ a: [Int], _ k: Int) -> [Int]{
var frequencyTable = [Int: Int]()
var buckets = [[Int]?](repeating: nil, count: a.count)
var result = [Int]()
for number in a{
if frequencyTable[number] != nil{
frequencyTable[number]! += 1
}else{
frequencyTable[number] = 1