吉比特笔试好难
选择填空感觉还好就是基础和c(c都快忘光了。。。)
coding第一题easy
第二题就开始不会了,俩哥们从数组左右取数,可以取1-n个数,但只能取一边,问最终俩哥们差值最大
给了个例题[10 -100 -200 20] ans=90 看了半天才懂是a取10,b取20,a取-100,b取-200才行。不能贪心,直接麻
第三题捉精灵
图问题没错,但是好麻烦啊,我的想法先判断几个连通图,然后每个连通图找个最小切入点,然后遍历连通图并且和直接捉精灵的值相比较取最小。
更坑的是,要捉n-1只精灵,这个还没想到咋搞。。。
这也太难了吧,23题偷了10就交卷了呜呜呜😥
coding第一题easy
第二题就开始不会了,俩哥们从数组左右取数,可以取1-n个数,但只能取一边,问最终俩哥们差值最大
给了个例题[10 -100 -200 20] ans=90 看了半天才懂是a取10,b取20,a取-100,b取-200才行。不能贪心,直接麻
第三题捉精灵
图问题没错,但是好麻烦啊,我的想法先判断几个连通图,然后每个连通图找个最小切入点,然后遍历连通图并且和直接捉精灵的值相比较取最小。
更坑的是,要捉n-1只精灵,这个还没想到咋搞。。。
这也太难了吧,23题偷了10就交卷了呜呜呜😥
全部评论
看来只有我第一题都不会
第一题我用的python傻子方法,有点像进制,因为比赛场<1000,for循环每场,那么第一名直接1000的26次方+上次的,第二名1000的25次方+上一轮的...。保存在字典里,最后结果排序。 为啥能成功呢,主要是无论多少个第二名加起来也比不上一个第一名的值。我感觉用c会比较难,得long long long long...
第一题,排序重点是如何正确比较大小,
我用了递归来比较两个团队间排名。
type team struct {
name string
rank []int
}
func compare(a, b *team, start int) bool {
if start >= len(a.rank) {
return a.name < b.name
}
if a.rank[start] > b.rank[start] {
return true
} else if a.rank[start] < b.rank[start] {
return false
}
return compare(a, b, start+1)
}
// 排序
for i := 0; i < len(rank); i++ {
max := i
for j := i + 1; j < len(rank); j++ {
if compare(rank[j], rank[i], 0) {
max = j
}
}
rank[i], rank[max] = rank[max], rank[i]
}
求问23题思路
第一题咋做的,我模拟A了第二题
三题都是0%
第一题30%,但给的用例和脑测都没问题,搞不懂
第三题是最小生成树叭
就a了第一题,第二三题甚至10都没有,第二题做了感觉一小时多,第三题没时间做了
23题我也不会 菜死了
第一题应该用什么方法捏
第二题是动态规划,第三题的话其实是删了一个点的最小生成树(要循环被删去的一个点)
离谱
大佬投的是什么岗位呀
第一题咋搞,我只能过20
A了1.8
真是和我一模一样😭
第二题取数字的方向,是只要选择了方向就不能变,还是说每次选的时候都可以选择从头选还是从尾选?
确实😂😂
第三题的话 尝试把每个结点去掉一次 然后计算剩下的精灵全部抓到最少需要多少魔法豆 循环n次 取最小?
相关推荐
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享