特斯拉算法面试题(go)

本文讨论了三个编程问题:1)反转整数的函数实现,要求处理边界条件和错误修复;2)计算基础设施中最大网络秩的函数,涉及城市间道路连接;3)寻找数组A中和为零的片段,包括优化算法。
摘要由CSDN通过智能技术生成

题目一:

你会得到一个函数的实现,该函数 solution 给定一个正整数N,将另一个整数打印到标准输出中,该整数是通过反转N 的小数表示形式形成的。该函数不应打印生成的整数的前导零

例子: 

  1. 给定N=54321,该函数应打印 12345
  2. 给定N=10011,该函数应打印 11001
  3. 给定N=1,该函数应打印 1

对于某些输入,附加的代码仍然不正确。尽管存在错误,但代码可能会为示例测试用例生成正确答案。本练习的目标是查找并修复实现中的错误。您最多可以修改三行

假设: N是[1..1,000,000,000]范围内的整数

func Solution(N int) {
    var enablePrint int
    enablePrint = N % 10
    for N > 0 {
        if enablePrint == 0 && N%10 != 0 {
            enablePrint = 1
        } else if enablePrint == 1 {
            fmt.Print(N % 10)
        }
        N = N / 10
    }
}

题目二:

给出了一个由N个城市(编号从1到N)和M条双向道路组成的基础设施。道路除了在起点和终点外并不相交(它们可以通过地下隧道以避免碰撞)
对于由一条道路直接连接的每一对城市,我们将它们的网络等级定义为连接到这两个城市之一的道路总数。
写一个函数:

func Solution(A[]int, B[]int, N int) int

给定两个数组A,B,每个数组由M个整数和一个整数N组成,其中A[i]和B[i]是位于第i条道路两端的城市,返回整个基础设施中的最大网络秩

例子:

  1. 给定A=[1, 2, 3, 3], B=[2, 3, 1, 4]和N=4, 函数应该返回4。所选的城市可能是2和3, 与之相连的四条道路是: (2, 1), (2, 3), (3, 1), (3, 4)
  2. 给定A=[1, 2, 4, 5], B=[2, 3, 5, 6]和N=6, 函数应该返回2。所选的城市可能是1和2, 与之相连的两条路是: (1, 2), (2, 3)

针对以下假设编写一个高效的算法: 

  • N是一个范围内的整数 [2...100]
  • M是在[1.4, 950]范围内的整数
  • 数组A和B的每个元素都是范围[1...N]内的整数
  • A和B的长度相等
  • 每条道路连接两个不同的城市
  • 两个城市最多由一条直达公路连接

题目三:

写一个函数Solution,给定由N个整数组成的数组A,返回A的片段数量,其总和等于0(即,对于P和Q,其中P小于Q,且A[P] + A[P+1] + ... +A[Q] = 0)。如果此数量超过 1,000,000,000,则函数应返回 -1

例子:

1.给定A = [2, -2, 3, 0, 4, -7], 函数应返回 4, 如此图片所示:

2.给定长度为100,000的A = [0, 0, ..., 0],函数应返回-1


针对以下假设编写一个高效的算法:

  1. N是范围在[1..100,000]的整数
  2. 数组A的每个元素是范围在[-10,000..10,000]的整数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值