美文网首页
多米诺骨牌

多米诺骨牌

作者: 唐僧取经 | 来源:发表于2019-06-25 09:52 被阅读0次

多米诺骨牌

image.png

结果:

image.png

分析过程:

  • 准备一个二维数组存储每个阶段的状态结果值
  • 将问题分解为前一个骨块和下一个骨块左右的关系
  • 找到递推关系

result[0] = append(result[0], int64(math.Max(float64(result[0][i]+node.Rnext.L), float64(result[1][i]+node.Lnext.L))))

result[1] = append(result[1], int64(math.Max(float64(result[0][i]+node.Rnext.R), float64(result[1][i]+node.Lnext.R))))

golang代码:

package main

import (
    "fmt"
    "golang.guazi-corp.com/finance/lego/common/math"
)

type Node struct {
    L      int64
    R      int64
    Status int64
}

func dynamic(list []Node) int64 {

    //存储当前块的左右值和下一块的左边结果,右边结果中间值

    result := [2][]int64{{0}, {0}}

    for i := 0; i < len(list)-1; i++ {
        node := list[i]
        next := list[i+1]

        result[0] = append(result[0], int64(math.Max(float64(result[0][i]+node.R*next.L), float64(result[1][i]+node.L*next.L))))

        result[1] = append(result[1], int64(math.Max(float64(result[0][i]+node.R*next.R), float64(result[1][i]+node.L*next.R))))

    }

    sum := int64(0)
    if result[0][len(result[0])-1] >= result[1][len(result[1])-1] {
        sum = result[0][len(result[0])-1]
    } else {
        sum = result[1][len(result[1])-1]
    }

    for i := 1; i < len(result[0]); i++ {
        if result[0][i] > result[1][i] {
            list[i].Status = 1
        }
    }

    return sum

}

func main() {

    list := []Node{
        {5, 8, 0},
        {4, 2, 0},
        {9, 6, 0},
        {7, 7, 0},
        {3, 9, 0},
        {11, 10, 0},
    }

    sum := dynamic(list)
    fmt.Println("sum=", sum)
    fmt.Println(list)

}


相关文章

  • 838. 推多米诺

    n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌向左或向右推。 每过一秒,倒向左...

  • 硬币的启示

    那天,我想起了一个视频:“多米诺骨牌选手用12000多米诺骨牌搭建出连环机关”我想:“别人能做到的,为什么...

  • 多米诺骨牌效应--高效达成目标

    写作 题目: 多米诺骨牌效应--高效达成目标 脆弱的完美主义 核心内容: 16表格速读法 多米诺骨牌效应 打破完美...

  • 0409剽悍晨读,最重要的事,只有一件。

    0412补 一.Why? 多米诺骨牌效应,完成最重要的事,就像推倒第一块多米诺骨牌,剩下的问题就会迎刃而解,也类似...

  • The One Thing 花时间做对的事,把事做对

    范例一 轻击一块多米诺骨牌,推倒了4491863块多米诺骨牌,并释放94000焦耳的能量 结论 做好一件事 恰当的...

  • 转载:心理学:今天的懒惰和拖延,会造成一生的荒废,力量强大让人害

    生活中的100个心理学效应|第44篇:多米诺骨牌效应 多米诺骨牌效应 为什么今天的事不能拖到明天? <一> 你是否...

  • 1128. 等价多米诺骨牌对的数量

    题目描述: 给你一个由一些多米诺骨牌组成的列表 dominoes。 如果其中某一张多米诺骨牌可以通过旋转 0 度或...

  • 宝宝的新词-顶呱呱

    叉车与多米诺骨牌是宝宝每天的必玩项目,多米诺骨牌是宝宝的麻将,超喜欢。 今天睡觉前,宝宝照例收拾自己的玩具车、“麻...

  • 等价多米诺骨牌对的数量

    题目: 给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 18...

  • 观察记录

    新玩具多米诺骨牌的投入 5月份的开始,我们投入新玩具多米诺骨牌吸引了大批的幼儿,大家都想参加新游戏,于是发生了争抢...

网友评论

      本文标题:多米诺骨牌

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