B站 开发笔试 Golang

打卡题 AK

class Solution:
    def DoubleNumber(self, n):

        length = len(str(n))
        cur = 10
        res = 0
        while 1:
            temp = str(cur)
            if len(temp) * 2 > length:
                break
            temp = str(cur) + str(cur)
            if 1 < int(temp) and int(temp) < n:
                res += 1
            if int(temp) > n:
                break
        return res
func main() {
	scanner := bufio.NewScanner(os.Stdin)
	n := 0
	nums := make([]int, 0)
	if scanner.Scan() {
		temp := strings.Split(scanner.Text(), " ")
		n, _ = strconv.Atoi(temp[0])
	}
	if scanner.Scan() {
		temp := strings.Split(scanner.Text(), " ")
		for _, v := range temp {
			temp, _ := strconv.Atoi(v)
			nums = append(nums, temp)
		}
	}
	n++//没用
	flag := 100000000
	res := 10000000000
	var dfs func(target []int, left, right int)
	dfs = func(target []int, left, right int) {
		if len(target) == 0 {
			if abs(left-right) < flag {
				flag = abs(left - right)
				res = max(left, right)
			}
			return
		}
		dfs(target[1:], left+target[0], right)
		dfs(target[1:], left, right+target[0])
	}
	dfs(nums, 0, 0)
	fmt.Println(res)
}
func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}
func abs(a int) int {
	if a > 0 {
		return a
	}
	return -a
}

全部评论

相关推荐

Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务