虾皮4.6算法岗笔试 编程题目大意及AC代码

4.9更新:
依然没有收到面试邀请,可能是简历不匹配,也可能是没hc了。
---
之前看大家分享就很焦虑,各种全a也没有面试机会,求求了,给个面试机会吧虾皮。。。

1. 对数据(x,y)有两种操作:两边各加1和两边各乘2,问从(x,y)到(a,b)最少需要几次操作?
bfs
import collections
class Solution:
    def GetMinCalculateCount(self, sourceX, sourceY, targetX, targetY) :
        q = collections.deque([(targetX, targetY)])
        res = 0
        visited = set()
        while q:
            for _ in range(len(q)):
                a, b = q.popleft()
                if a == sourceX and b == sourceY:
                    return res
                elif a > sourceX and b > sourceY:
                    if (a - 1, b - 1) not in visited:
                        visited.add((a - 1, b - 1))
                        q.append((a - 1, b - 1))
                    if a % 2 == 0 and b % 2 == 0 and (a // 2, b // 2) not in visited:
                        visited.add((a // 2, b // 2))
                        q.append((a // 2, b // 2))
            res += 1
        return -1

a = Solution()
a.GetMinCalculateCount(10,100,22,203)
2. 把只含有A和B原字符串变成互逆字符串:
res1 = 0
res2 = 0
s1 = list(s)
s2 = list(s)
# begin with "A" 
pre = "B"
for i in range(len(s)):
    if s1[i] == pre:
        res1 += 1
    pre = "A" if pre == "B" else "B"

# begin with "B" 
pre = "A"
for i in range(len(s)):
    if s1[i] == pre:
        res2 += 1
    pre = "A" if pre == "B" else "B"

print(min(res1, res2))
3. 8皇后原题
n = 4
res = [0]
s1 = set() #row
s2 = set() #column
s3 = set() #diag
def backtracking(idx):
    if idx == n:
        res[0] += 1
        return 
    
    for i in range(n):
        if i not in s1 and i + idx not in s2 and i - idx not in s3:
            s1.add(i)
            s2.add(i + idx)
            s3.add(i - idx)
            backtracking(idx + 1)
            s1.remove(i)
            s2.remove(i + idx)
            s3.remove(i - idx)
backtracking(0)
print(res[0])




#笔试题目#
全部评论
这个n皇后好像是原题。。。我是3.19笔试的。。和我那时候一样
点赞 回复 分享
发布于 2022-04-07 14:55
来字节试试嘛!算法缺人!
点赞 回复 分享
发布于 2022-04-06 23:44

相关推荐

这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 12:31
以前小时候我最痛恨出轨、偷情的人,无论男女,为什么会出轨?现在我成了自己最讨厌的人,没想到分享的东西在牛客会被这么多人看,大家的评价都很中肯,我也认同,想过一一回复,但我还是收声了,我想我应该说说这件事,这件事一直压在我心里,是个很大的心结,上面说了人为什么出轨,我大概能明白了。我们大一下半年开始恋爱,开始恋爱,我给出了我铭记3年的承诺,我对她好一辈子,我永远不会背叛,我责任心太重,我觉得跟了我,我就要照顾她一辈子,我们在一起3年我都没有碰过她,她说往东我就往东,她说什么我做什么,她要我干什么,我就干什么!在学校很美好,中途也出过一些小插曲,比如男闺蜜、男闺蜜2号等等等。但我都强迫她改掉了,我...
牛客刘北:两个缺爱的人是没有办法好好在一起的,但世界上哪有什么是非对错?你后悔你们在一起了,但是刚刚在一起的美好也是真的呀,因为其他人的出现,你开始想要了最开始的自己,你的确对不起自己,21岁的你望高物远,你完全可以不谈恋爱,去过你想要的生活,你向往自由,在一起之后,你要想的不是一个人,而是两个人,你不是变心了,就像你说的,你受够了,你不想包容了,冷静几天是你最优的选择,爱人先爱己。
社会教会你的第一课
点赞 评论 收藏
分享
评论
7
11
分享

创作者周榜

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