2021年12月

数组内任一两位数字组合成不重复的数组
var arr = []int{14, 13, 12, 11, 9, 8, 6, 4, 2}
[14,13]和[13,14]就算重复

package main

import (
    "fmt"
)

func main() {
    s := make([]int, 2)
    var arr = []int{14, 13, 12, 11, 9, 8, 6, 4, 2}

    for i := 1; i < len(arr); i++ {
        s[0] = arr[i-1]
        var winArr []int
        winArr = append(winArr, arr[i:]...)

        for j := 0; j < len(winArr); j++ {
            s[1] = winArr[j]
            fmt.Println(s)
        }
    }
}

多个数的排列组合, 数字可以重复, 001, 002, 003这种

package main

import (
    "fmt"
)

func main() {
    var (
        arr = []int{1, 2, 3}
        brr = make([]int, len(arr))
        crr [][]int
    )
    getBrr(&crr, arr, brr, len(brr))
    fmt.Println(crr)
}

func getBrr(crr *[][]int, arr, brr []int, lineNum int) {
    if lineNum < 1 {
        slice := make([]int, len(arr))
        copy(slice, brr)
        *crr = append(*crr, slice)
        return
    }
    lineNum--
    for j := 0; j < len(arr); j++ {
        brr[lineNum] = arr[j]
        getBrr(crr, arr, brr, lineNum)
    }
}

使用了递归+copy, 有没有效率更高的方法

接着上一篇 heco private chain 搭建流程

最高可添加 21个 validator节点, miner.start()的 validator节点大于总量的 1/2+1时会正常出块

1. 扒合约

把 heco系统合约地址 https://github.com/stars-labs/heco-contracts/tree/master/contracts 的合约代码扒下来, 想办法弄到remix里

2. 编译版本

修改 Solidity compilerCOMPILER编译版本为 v0.6.1, 其他版本会编译不通过

- 阅读剩余部分 -