zoukankan      html  css  js  c++  java
  • go最小路径

    go最小路径

    package main
    
    import (
        "fmt"
        "flag"
        "math/rand"
        "time"
        )
    
    var i int
    var j int
    var path [][]int
    var value [][]int
    
    func init() {
        flag.IntVar(&i, "i", 10, "The greeting object.")
        flag.IntVar(&j, "j", 10, "The greeting object.")
    }
    
    func main() {
        flag.Parse()
        initArray()
        fmt.Printf("初始化数组为:%v 
    ", "")
        for a := 0; a < i; a++ {
            fmt.Printf("%v 
    ", path[a])
        }
        walk()
        fmt.Printf("路径权值为:%v 
    ", "")
        for a := 0; a < i; a++ {
            fmt.Printf("%v 
    ", value[a])
        }
        fmt.Printf("最小路径为:%v 
    ", value[0][0])
    }
    
    // 计算路径权值
    func walk() {
        value[i-1][j-1] = path[i-1][j-1]
        for a := j-2; a >= 0; a-- {
            value[i-1][a] = value[i-1][a+1] + path[i-1][a]
        }
        for a := i-2; a >= 0; a-- {
            value[a][j-1] = value[a+1][j-1] + path[a][j-1]
        }
        for a := i-2; a >= 0; a-- {
            for b := j-2; b >= 0; b-- {
                minA := value[a+1][b] + path[a][b]
                minB := value[a][b+1] + path[a][b]
                value[a][b] = min(minA,minB)
            }
        }
    }
    
    // 比较两个数大小,返回较小的
    func min(a int,b int)int{
        if(a < b){
            return a
        }else{
            return b
        }
    }
    
    // 随机生成初始化数组
    func initArray(){
        rand.Seed(time.Now().UnixNano())
        for a := 0; a < i; a++ {
            arrayA := []int{}
            arrayB := []int{}
            for b := 0; b < j; b++ {
                arrayA = append(arrayA,rand.Intn(10))
                arrayB = append(arrayB,0)
            }
            path = append(path,arrayA)
            value = append(value,arrayB)
        }
    }
  • 相关阅读:
    111
    ZeroClipBoard 复制粘贴插件
    三、新增临时素材
    二、获取AccessToken
    一、微信公众平台的接入微信公众平台的接入
    Jquery.validate的使用
    尝试解决IIS问题一些方法
    匿名类和匿名方法
    泛型类的认知
    发布支持mysql8.0的writer和reader
  • 原文地址:https://www.cnblogs.com/lijian-switch/p/11959093.html
Copyright © 2011-2022 走看看