牛客 算法 HJ103 Redraiment的走法 golang语言实现

这篇文章展示了如何在Go语言中实现HJ103Redraiment算法,通过处理输入并利用动态规划求解最大连续子数组和问题,输出解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

HJ103 Redraiment的走法

sddd

实现

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	nums := make([]int, 0)
    nums_len:=0
    dp:=make([]int, 0)
	for scanner.Scan() {
		input := scanner.Text()
		nums_str := strings.Fields(input)
		if len(nums_str) == 1 {
            nums_len,_ = strconv.Atoi(nums_str[0])
            for i:=0;i<nums_len;i++{
                 dp = append(dp, 1)  
            }
		} else {
			for _, v := range nums_str {
				v_int, _ := strconv.Atoi(v)
				nums = append(nums, v_int)
			}
		}
	}

    max_result := 1
    for i,vi:=range nums{
          for j:=0;j<=i;j++{
            if nums[j]<vi{
                dp[i] = max(dp[i], dp[j]+1)
                max_result = max(dp[i], max_result)
            }
          }  
    }
    fmt.Printf("%d", max_result)
}

func max(a,b int)int{
    if a>b {
        return a 
    }
    return b 
}

结果

result

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值