美文网首页
2019-12-08

2019-12-08

作者: Jiawei_84a5 | 来源:发表于2019-12-09 01:02 被阅读0次

Find Duplicate Number

func findDuplicate(nums []int) int {
    left, right := 1, len(nums)-1
    mid := left + (right-left)/2
    for left < right {
        c := 0
        mid = left + (right-left)/2
        for i := 0; i < len(nums); i++ {
            if nums[i] <= mid {
                c++
            }
        }
        if c > mid {
            right = mid
        } else {
            left = mid + 1
        }
    }
    return left
}

Search Matrix

func searchMatrix(matrix [][]int, target int) bool {
    if len(matrix) == 0 || len(matrix[0]) == 0 {
        return false
    }

    n := len(matrix)
    m := len(matrix[0])
    if target < matrix[0][0] || target > matrix[n-1][m-1] {
        return false
    }

    var mid int
    low, high := 0, n-1
    for low <= high {
        mid = (low + high) / 2
        if matrix[mid][0] > target {
            high = mid - 1
        } else if matrix[mid][0] < target {
            low = mid + 1
        } else {
            return true
        }
    }

    left, right := 0, m-1
    for left <= right {
        mid = (left + right) / 2
        if matrix[high][mid] > target {
            right = mid - 1
        } else if matrix[high][mid] < target {
            left = mid + 1
        } else {
            return true
        }
    }
    return false
}

Full permute

func permute(nums []int) [][]int {
    var ret [][]int
    l := len(nums)
    if l == 0 {
        return ret
    }
    helper(nums, 0, l-1, &ret)
    return ret
}

func helper(nums []int, begin, end int, ret *[][]int) {
    if begin == end {
        t := make([]int, len(nums))
        copy(t, nums) //这里一定要copy
        *ret = append(*ret, t)
        return
    }

    for i := begin; i <= end; i++ {
        nums[begin], nums[i] = nums[i], nums[begin]
        helper(nums, begin+1, end, ret)
        nums[begin], nums[i] = nums[i], nums[begin]
    }
}

相关文章

  • 12.8日工作心得

    时间: 2019-12-08 部门名称: 理事会办公室 岗位名称: 执行总校长 分享人: 黄苹 今日工作内容: 1...

  • 2019-12-08

    2019-12-08 日精进打卡 姓名:彭新 宁波蓝天白云供应链管理有限公司 【日精进打卡第618天】 【知~学习...

  • 沟通的艺术(21) - 4.4管理困扰的情绪(下)

    每天300字 2019-12-08 4.4 管理困扰的情绪 如何减少无益的情绪? 一句话总结: 减少无益的情绪,需...

  • 2019-12-08

    2019-12-08 扬州市方圆建筑工程有限公司 377期利他2组 【日精进打卡第601天】 【知~背诵】 《六项...

  • 我在人间凑数的日子

    2019-12-08 雾霾 北京·昌平 狗窝 按着老家那种独特而又神秘的计算方式2020年我应该30岁了,这是我第...

  • 表达方式

    高艳峰 信阳 网络中级九期 坚持分享第615天 2019-12-08 说话也需要艺术,会说话的人让人心情舒畅,不会...

  • 时至今日你说我是个桂人

    2019-12-08。周日。晴 你说人分不分贵贱?我告诉你肯定分。革命工作不分高低贵贱只是分工不同。那是原来。是他...

  • 2019-12-08

    2019-12-08 打卡人:王素琴 公司:阜阳市豹子头服饰科技有限公司【日精进打卡第582天 【知~学习】 公司...

  • 2019-12-08

    2019-12-08 姓名 :李宏清(单位)扬州市方圆建筑工程有限公司 哈尔滨363期反省二组 【日精进打卡第60...

  • 2019-12-09

    2019-12-08 姓名:何秋兵《六项精进》打卡 ,12月08日 公司:扬州市方圆建筑工程有限公司 第349期 ...

网友评论

      本文标题:2019-12-08

      本文链接:https://www.haomeiwen.com/subject/sswvgctx.html