2019-10-20

func findLUSlength(strs []string) int {
    res, n := -1, len(strs)
    for i := 0; i < n; i++ {
        if len(strs[i]) < res {
            continue
        }
        j := -1
        for j < n {
            j++
            if i != j && isSub(strs[i], strs[j]) {
                break
            }
        }
        if j == n {
            res = max(res, len(strs[i]))
        }
    }
    return res
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}

func isSub(a, b string) bool {
    i, j := 0, 0
    for i < len(a) && j < len(b) {
        if a[i] == b[j] {
            i++
            j++
        }
    }
    return i == len(a)
}

func checkSubarraySum(nums []int, k int) bool {
    m := make(map[int]int)
    m[0] = -1
    sum := 0
    for i := 0; i < len(nums); i++ {
        sum += nums[i]
        if k != 0 {
            sum %= k
        }
        prev, ok := m[sum]
        if ok {
            if i-prev > 1 {
                return true
            }
        } else {
            m[sum] = i
        }
    }
    return false
}
type TreeNode struct {
    Val   int
    Left  *TreeNode
    Right *TreeNode
}

func helper(s, t *TreeNode) bool {
    if s == nil && t == nil {
        return true
    }
    if s == nil || t == nil {
        return false
    }
    if s.Val != t.Val {
        return false
    }
    return helper(s.Left, t.Left) && helper(s.Right, t.Right)
}
func isSubtree(s *TreeNode, t *TreeNode) bool {
    if s == nil {
        return false
    }
    if helper(s, t) {
        return true
    }
    return isSubtree(s.Left, t) || isSubtree(s.Right, t)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容