百度笔试24届暑期实习招聘研发A卷

本来想找Go的,结果全是C++的题。。。编程题都没过,1,2题感觉思路是对的,不知道哪写的有问题,第3题感觉应该用线段树维护几个值?各位1,2题A了的能帮我看看吗?
第一题
遍历一遍数组,把相同颜色累加求和,另外乘以前面不同颜色的和并加到最终结果上,过程不断取模。
func main() {
mod := big.NewInt(int64(1e9 + 7))
var n int
var x int64
fmt.Scanln(&n)
nums := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Scan(&x)
nums[i] = x
}
input := bufio.NewScanner(os.Stdin)
input.Scan()
str := input.Text()
fmt.Println(str)
ans := big.NewInt(int64(0))
sumR := big.NewInt(int64(0))
sumB := big.NewInt(int64(0))
for i, s := range str {
if s == 'R' {
tmp := big.NewInt(0)
tmp.SetInt64(nums[i])
sumR.Add(sumR, tmp)
sumR.Mod(sumR, mod)
tmp.Mul(tmp, sumB)
tmp.Mod(tmp, mod)
ans.Add(ans, tmp)
ans.Mod(ans, mod)
} else {
tmp := big.NewInt(0)
tmp.SetInt64(nums[i])
sumB.Add(sumB, tmp)
sumB.Mod(sumB, mod)
tmp.Mul(tmp, sumR)
tmp.Mod(tmp, mod)
ans.Add(ans, tmp)
ans.Mod(ans, mod)
}
}
fmt.Println(ans)
}
最开始都没用大数,用int64也是过不了。
全部评论
佬什么时候笔试的?
点赞 回复 分享
发布于 2023-03-29 11:54 辽宁

相关推荐

03-16 12:53
已编辑
华中科技大学 Java
2025.03.25实习:介绍一下实习的主要工作。项目:介绍一下OJ项目;项目里面使用了redis,主要用来干嘛 -> 拓展到怎么解决 mysql 与 redis 数据不一致的问题,如果第二个删除缓存的操作失败了怎么办八股:    ·TCP四次挥手的时候,第四次挥手丢失会发生什么;TimeWaited到期之后,收到第三次重发的报文会怎么样。    ·在ping对方主机的时候,直接把本机的网线拔了会怎么样;ping 本机ip地址和ping对方主机有什么区别    ·讲一下操作系统零拷贝    ·比如说一个日志里面记录的是 ip 以及对应的访问次数,那么使用什么linux指令可以查看访问次数前几的 ip 地址    ·使用线程池的时候需要关注哪些参数;假设设置了一个线程池,核心线程数是0,最大线程数是10,这时候来了一个任务会发生什么;在释放线程的时候,使用 shutdown 和 shutdownnow 有什么区别;shutdownnow 中终止正在工作的线程靠什么方法。    ·写一个 demo,实现两个线程交替打印奇偶数    ·java里面常见的锁;介绍一下 synchronized 原理、使用场景、是不是重入锁、是不是公平锁,公平锁和非会公平锁使用场景有什么区别;实现乐观锁的途径,CAS操作有什么缺点;    ·讲一下 mysql 有哪些索引;有两个线程操作同一个数据会等待锁吗,有什么问题吗    ·为什么在 hashMap 中的结构要把链表改变为红黑树,红黑树执行查询操作的时候时间复杂度是多少算法:    LRU 缓存
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务