题目一:
你会得到一个函数的实现,该函数 solution 给定一个正整数N,将另一个整数打印到标准输出中,该整数是通过反转N 的小数表示形式形成的。该函数不应打印生成的整数的前导零
例子:
- 给定N=54321,该函数应打印 12345
- 给定N=10011,该函数应打印 11001
- 给定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条道路两端的城市,返回整个基础设施中的最大网络秩
例子:
- 给定A=[1, 2, 3, 3], B=[2, 3, 1, 4]和N=4, 函数应该返回4。所选的城市可能是2和3, 与之相连的四条道路是: (2, 1), (2, 3), (3, 1), (3, 4)
- 给定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
针对以下假设编写一个高效的算法:
- N是范围在[1..100,000]的整数
- 数组A的每个元素是范围在[-10,000..10,000]的整数