Home leetCode Day4
Post
Cancel

leetCode Day4

Valid Anagram

題目:

1
給兩個字串,如果這兩個字串裡面的字母從新組合都相同返回true,不同返回false

解法:

1
判斷兩個數的長度,如果不一樣,回傳false,將第一個字串的所有字母存入hash表出現次數,遍歷第二個字串,如果出現字數次數為0,回傳false,字母出現次數--
code

func isAnagram(s string, t string) bool {    
    if len(s) != len(t) {
        return false
    }
    
    tmp := make(map[rune]int)
    
    for _, value := range s {
        tmp[value]++
    }
    
    for _, value := range t {
        if tmp[value] == 0 {
            return false
        }
        tmp[value]--
    }
    
    return true
}

Binary Search

題目:

1
有一個數字陣列,找出目標值是否在陣列內,不在回傳-1,在的話回傳key, 空間複雜度O(log n)

解法:

1
使用二分法看中間值跟目標值比大小,目標值大的話,最小值為中間值+1,目標值小的話,最大值為中間值-1,直到找出值,或是跑完陣列
code

func search(nums []int, target int) int {
    min, max, mid := 0, len(nums) - 1, 0
    
    for min <= max {
        mid = (min + max) / 2
        if nums[mid] > target {
            max = mid - 1
        } else if nums[mid] < target {
            min = mid + 1
        } else {
            return mid
        }
    }
    
    return -1
}
This post is licensed under CC BY 4.0 by the author.

Trending Tags