单项选择:
-
- 计算机图形学:深度测试的作用是什么?
-
- 数据结构:给出二叉树的后序遍历和中序遍历,选择哪个是前序遍历?
-
- 题忘了
-
- 题忘了
多项选择:
-
- 计算机网络:UDP/TCP/IP协议的区别?
-
- 进出栈问题:存在一个有序递增数组1、2、···、n和一个大小为m的栈,顺序进栈随机出栈。例如n = 2,m = 3时,出栈顺序可能是1、2,也可能是2、1。假设n = 7、m = 5,那么出栈顺序可能是?
-
- 操作系统:多线程/多进程基础区别?
-
-
数组和链表,哪种操作数组速度更快?
A. 返回中间节点 B. 选择随机节点 C. 返回头部 D. 头部插入
-
-
-
面向对象的三个基本元素?
A. 多态 B. 抽象 C. 继承 D. 封装
-
-
-
下列算法中,哪种基于贪心算法?
A. Prim B. KMP C. Floyd-Warshall D. Dijkstra
-
填空:
-
- 求地址:存在一个二维数组array[1...100][1...65](下标从1开始),基地址为10000,且每个元素占2个存储单元。问array[56, 22]的地址是?
- 存在以下函数,求x(x(8))需要运行多少次x()函数?
int x(int n) {
if(n <= 3) return 1;
else {
return x(n - 2) + x(n - 4) + 1;
}
}
编程:
1. LeetCode 547.省份数量
有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。
省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。
给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。
返回矩阵中 省份 的数量。
示例 1:
输入: isConnected = [[1,1,0],[1,1,0],[0,0,1]]
输出: 2
示例 2:
输入: isConnected = [[1,0,0],[0,1,0],[0,0,1]]
输出: 3
提示:
1 <= n <= 200n == isConnected.lengthn == isConnected[i].lengthisConnected[i][j]为1或0isConnected[i][i] == 1isConnected[i][j] == isConnected[j][i]
2. 字符串组合拼接(暂时没找到原题,但很常见)
存在字符串destStr和字符串数组elements。可以使用elements数组中的元素拼接成完整的字符串destStr,请返回对应的字符串数组索引。
示例 1:
输入:destStr = "dest4sohlywqry", elements[] = {"wqry", "dest4", "sogmhye", "sohly"};
输出:{1, 3, 0}
AC代码:
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 返回使用 elements 内容拼接成 destStr 的组合方案
* @param destStr string字符串 需要拼接目标字符串
* @param elements string字符串vector 用于拼接的元素列表,允许重复使用同一元素
* @return int整型vector
*/
vector<int> StringAssemble(string destStr, vector<string>& elements) {
// write code here
vector<int> ans;
// 遍历元素中所有字符串长度
int l = 0;
bool flag = false;
int count = 0;
while(!flag) {
for(int i = 0; i < elements.size(); i ++) {
// 在不越界的情况下,如果有字符串相等
if(l + elements[i].length() <= destStr.length() && destStr.substr(l, elements[i].length()) == elements[i]) {
ans.push_back(i); // 把字符串放到ansVector里
l += elements[i].size(); // 更新最左端指针
}
}
if(l == destStr.length()) flag = true;
}
return ans;
}
};