题解 | #牛牛组数#

牛牛组数

http://www.nowcoder.com/questionTerminal/d4087657d86242169d2ed807d0d1410e

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 返回最大和的字符串
 * @param x string字符串 即题目描述中所给字符串
 * @param k int整型 即题目描述中所给的k
 * @return string字符串
 */
func Maxsumforknumers(x string, k int) string {
	// write code here
	vec := make([]int, 10)
	for i := 0; i < len(x); i++ {
		vec[x[i]-'0'] += 1
	}
	sumb := 0
	j := 0
	for k > 1 {
		if vec[j] > 0 {
			vec[j]--
			k--
			sumb += j
		} else {
            j++
        }
	}
    sumA := getSumA(vec)
    getSum(sumA, sumb)
    if sumA[0] == '0' {
        sumA = sumA[1:]
    }
    return string(sumA)
}
func getSumA(vec []int) []byte {
    str := make([]byte, 1)
    str[0] = '0'
    var j uint8
    j = 9
    for j < 10 {
        for vec[j] > 0 {
            str = append(str, j + '0')
            vec[j]--
        }
        j--
    }
    return str
}
func getSum(sumA []byte, sumb int) {
    k, left := len(sumA) - 1, 0
    for  sumb > 0 || left > 0 {
        tmp := sumA[k]
        sumA[k] = uint8((int(sumA[k] - '0') + (sumb % 10) + left) % 10) + '0'
        left = (int(tmp - '0') + (sumb % 10) + left) / 10
        k--
        sumb /= 10
    }
}

golang

全部评论

相关推荐

2025-12-19 15:17
门头沟学院 Java
27届中九本,目前陆陆续续也面了很多家厂了,大厂面了字节、腾讯、虾皮还有几家中小厂,全是一面挂,只有字节进二面,二面也是秒挂了。知道自己能力很差,基本上大厂面试题只要问题不是八股文,出一些场景题或者真实情况下的一些问题就不太答得上来,我感觉大多数面试官看我项目都是学习性质的项目没有部署上线,也没有面对真实场景好像就对我的项目没啥兴趣了,项目也不太拷打,就问几个简单的八股或者直接另出一个系统设计题(比如字节、虾皮),有一家中厂问的八股啥的还让我介绍项目重点,我就介绍然后正常回答八股,他也不追问,但是莫名就是一面挂了,也想问问大家有什么星球上的项目推荐嘛。目前项目就是一个点评魔改加一个图库烂大街,昨天面的腾讯的面试官人很好,也给我指出了一些建议,希望我深耕一些技术的实际场景不要堆砌中间件还要加深计算机基础知识的学习。因为楼主不是科班的,数据结构因为学过,Hot100也刷烂了,算法只要不是很难问题应该不大,但是计算机网络操作系统完全没学过,面腾讯和虾皮的时候完全不会被拷打了,感觉这些知识也不好速成,加上最近要期末考试了,学习技术的时间也要压缩分担给课上突击一下期末。想先沉淀半个多月,度过期末再做个项目之后继续投,想问一下各位大佬有什么意见?真的有点迷茫,感觉还要学好多才能达到找实习的水平,如果一月还找不到就打算考研了,那些真实场景确实没有接触过考虑不到,但是我都没有工作经验感觉很难锻炼这方面,也想问问大家该怎么提高这种真实场景思维,谢谢各位佬。
纳斯卡可:哥们大厂不要乱面啊,这些都是有面评的。你下次再想去面试都不会给你约了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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