原题链接
#include
class Foo
{
public:
Foo(int v) :m_value(v) { } //1
void print()
{
std::cout << m_value;
}
~Foo() {}
private:
Foo() { m_value = 0; }//2
int m_value;
};
int main()
{
Foo a;//3
a.print();
Foo b(1);//4
b.print();
}
答案 3
答案 后序
解释:先序 根左右
中序 左根右
后序 左右根
答案 N+1
解释:根据森林转换为二叉树的“左孩子右兄弟”的表示法,即对于每棵二叉树,每个结点的右指针指向其右邻兄弟。
针对每一个非终端结点,一定会有且仅有一个孩子结点没有右邻兄弟,即右指针领域为空。因此N个非终端结点,就有N个右指针域为空。
看完单棵二叉树,再来看这些二叉树是怎么连接成一棵二叉树的。原理是:将后一棵二叉树的根节点作为前一棵二叉树的右孩子连接起来,所以只有最后一棵二叉树的根结点没有右孩子,即右指针域为空。
因此综上:N个非终端结点,就有(N+1)个结点的右指针域为空。
答案 (N+l)/2
解释:第一个数的比较次数为1,第二个数的比较次数为2。。。以此类推第N个数的比较次数为N,所以总的比较次数为1+2+…+N=N(N+1)/2,平均比较次数为(N+1)/2,也即平均查找长度。
答案 有左孩子,无右孩子
解释 完全二叉树,而且与深度为K的满二叉树中编号从1至n的结点一 一对应,说明满足每层从左到右都是按编号顺序排列的,根节点的编号为1,对于编号为M的结点,其左孩子编号为2M , 右孩子编号为2M+1。M=25代入,发现选B
答案 Python使用与类相同的函数作为构造方法
解释:Python 使用_init_()作为构造方法
答案 卷积神经网络可以有多个卷积核,可以不同大小
解释 同一层feature map可以分别使用多个不同尺寸的卷积核,以获得不同尺度的特征,再把这些特征结合起来,得到的特征往往比使用单一卷积核的要好,谷歌的GoogLeNet,或者说Inception系列的网络,就使用了多个卷积核的结构。
public class Demo {
private Demo() {}
private static class Singleton {
private static final Demo INSTANCE = new Demo();
}
public static Demo getInstance() {
return Singleton.INSTANCE;
}
}
答案 线程安全,懒加载
答案 644
解释:unmask的值为022,表示反码。反码022为root账户,创建文件权限默认权限值为rwx-rwx-rwx(777),减去022,755
echo hello >> file;
echo world > file;
cat file
答案 world
解释 使用>>指令向文件追加内容,原内容将保存。
使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。
在16Core64G内存的机器上,对文件进行读入,排序(字典),输出成一个文件。
要求完成整个工作的时间越短越好
int sort( const char * in_file_name, const char * out_file_name )
{
适当安排三个人使得吃完所有的葡萄,并且且三个人中吃的最多的那个人吃得尽量少。
import sys
import math
n = int(sys.stdin.readline().strip())
lists = []
for i in range(n):
tmp = list(map(int, str(sys.stdin.readline().strip()).split()))
lists.append(tmp)
for i in lists:
x = (sum(i)+2) // 3
y = (max(i)+1) //2
print(int(max(x,y)))
import sys
def getCount(list1,list2):
sum1 = sum(list1)
if sum1%2:
return "NO"
num1 = int(sum1 /2)
leng = len(list2)
for i in range(leng):
num2 = 0
for j in range(i, leng):
num2 += list2[j]
if num2 > num1:
break
if num2 == num1:
num3 = int((sum(list2[j + 1:])+sum(list2[:i])-num2)/2)
if num3 == num2:
return "YES"
return "NO"
num = int(sys.stdin.readline())
for i in range(num):
list1 = []
geshu = int(sys.stdin.readline())
list1=list(map(int, sys.stdin.readline().split()))
list2 = list1 * 2
print(getCount(list1,list2))
另外小易拥有一次释放超能力的机会。这个超能力能让小易从柱子i跳到任意满足 1 ≤ j − i ≤ k 1\leq j-i \leq k 1≤j−i≤k的柱子i而无视柱子高度的限制。
现在小易想知道,小易是否能到达第根柱子。
t = int(input())
for _ in range(t):
n, k = list(map(int, input().split()))
li = list(map(int, input().split()))
dp = [[False, 1] for _ in range(n)]
dp[0][0] = True
for i in range(1, n):
flag = False
max1 = 0
for j in range(max(0, i - k), i):
if dp[j][0] == False:
continue
elif li[j] >= li[i]:
dp[i] = dp[j].copy()
max1 = max(max1, dp[j][1])
dp[i][1] = max1
flag = True
elif li[j] < li[i] and not flag and dp[j][1]:
dp[i] = dp[j].copy()
dp[i][1] = 0
if dp[-1][0]:
print('YES')
else:
print('NO')
现在小易的老板向小易提了m次询问, 每次询问老板都会给出一个整数k, 小易要快速回答老板工资等于k的员工的数量。
from collections import Counter
n,m = map(int,input().split())
salary = list(map(int,input().split()))
frequency_dict = dict(Counter(salary))
for i in range(m):
question = int(input())
print(frequency_dict.get(question,0))