讨论/技术交流/滴滴历届真题汇总,输入输出的题,golang怎么写才对?/
滴滴历届真题汇总,输入输出的题,golang怎么写才对?

大家好

《滴滴历届真题汇总》
https://leetcode-cn.com/leetbook/read/didiglobal1/edeao2/
有不少提都是需要写输入输出的,golang应该怎么写才对呢?求高人指点

我自己做了两种尝试,本地执行OK,但网页提交得到的结果是 err.EOF

我的第一次尝试

package main

import (
	"fmt"
	"log"
)

func main() {
	var N int
	var M int
	var err error
	_, err = fmt.Scan(&N, &M)
	if err != nil {
		log.Panic("fmt.Scan failed, err:", err)
	}
	A := make([][]int, M)
	for i := 0; i < M; i++ {
		A[i] = make([]int, N)
	}
	for i := 0; i < M; i++ {
		for j := 0; j < N; j++ {
			_, err = fmt.Scan(&A[i][j])
			if err != nil {
				log.Panic("fmt.Scan failed, err:", err)
			}
		}
	}
	log.Println(A)
}

我的第二次尝试

package main

import (
	"bufio"
	"log"
	"os"
	"strconv"
	"strings"
)
func main() {
	var N int
	var M int
	var err error
	inputReader := bufio.NewReader(os.Stdin)
	input, err := inputReader.ReadString('\n')
	if err != nil {
		log.Panic("inputReader.ReadString, err:", err)
	}
	inputSlice := strings.Fields(input)
	N, _ = strconv.Atoi(inputSlice[0])
	M, _ = strconv.Atoi(inputSlice[1])
	A := make([][]int, M)
	for i := 0; i < M; i++ {
		A[i] = make([]int, N)
		input, err := inputReader.ReadString('\n')
		if err != nil {
			log.Panic("inputReader.ReadString, err:", err)
		}
		inputSlice = strings.Fields(input)
		for j := 0; j < N; j++ {
			A[i][j], _ = strconv.Atoi(inputSlice[j])
		}
	}
	log.Println(A)
}
2
共 3 个回复

没事了
今天有人写了个答案在下边
知道方法了
打搅了

package main

import "fmt"

func main() {
    var m, n int
    fmt.Scanln(&n, &m)
    maxt := make([][]int, n)
    for i := range maxt {
        maxt[i] = make([]int, m)
    }
    for i := 0; i < n; i++ {
        for j := 0; j < m; j++ {
            fmt.Scan(&maxt[i][j])
        }
    }

    for i := 1; i < n; i++ {
        for j := 0; j < m; j++ {
            if maxt[i-1][j] > maxt[i][j] {
                maxt[i][j] = maxt[i-1][j]
            }
        }
    }
    sum := 0
    for j := 0; j < m; j++ {
        sum += maxt[n-1][j]
    }
    fmt.Println(sum)
}

求助@LeetCode

顶一下,求解