/programInterviewQuestion

记录面试遇到的编程题和我的解决方案

Primary LanguageRust

circular_matrix

输出任意阶类似下列蛇形矩阵
1 2   1 2 3    1  2  3  4
4 3   8 9 4   12 13 14  5
      7 6 5   11 16 15  6
              10  9  8  7

get_num.py

存在一个 n 位正整数 A 可写作:
anan-1an-2...a1
经过如下位置调换得到正整数 A' 可写作:
a1anan-1an-2...a2
A 与 A' 存在如下关系:
A' = 2A

note

设辅助数列记为 {kn}, 假设正整数 A 的个位数为kn+1存在如下关系:
kn = 10 * kn+1%2 + int(kn+1/2)
kn-1 = 10 * kn%2 + int(kn/2)
kn-2 = 10 * kn-1%2 + int(kn-1/2)
...
则对于数列{an},有
an = int(kn+1/2)
an-1 = int(kn/2)
...
对于数列{kn}的递归中止条件为:
ki/2 = kn+1

#bubblesort.cpp

使用迭代而非循环实现冒泡排序

note

添加一个标识符——flag,初始化为true,当一次遍历过程中存在交换时置为false。
迭代中止条件为遍历到list尾部且flag为true,即本次遍历不存在交换,否则重置flag,并从新开始遍历。