第92场周赛
时间:2022-07-28
本文章向大家介绍第92场周赛,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
867. 转置矩阵
题解:根据描述,把行变成列,把列变成行。
vector<vector<int>> transpose(vector<vector<int>>& A) {
vector<vector<int>>ret;
vector<int>temp;
int m = A.size();//行数
int n = A[0].size();//列数
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
temp.push_back(A[j][i]);
}
ret.push_back(temp);
temp.clear();
}
return ret;
}
865. 具有所有最深结点的最小子树
题解:根据描述,只需要找到层数最深的节点,然后找这些节点的公共祖先即可。
TreeNode* subtreeWithAllDeepest(TreeNode* root) {
queue<TreeNode*>q;
vector<TreeNode*>node;
q.push(root);
while(!q.empty())
{//层序遍历,node向量保存每一层的节点
int len =q.size();
node.clear();
for(int i=0;i<len;i++){
TreeNode* tmp = q.front();
node.push_back(tmp);
q.pop();
if(tmp->left) q.push(tmp->left);
if(tmp->right) q.push(tmp->right);
}
}
while(true)
{//node节点找公共祖先
if(node.size()==1) return node[0];
else
{
TreeNode* p = node[0];
TreeNode* q = node[1];
node.erase(node.begin());
node.erase(node.begin());
TreeNode* tmp = lowestCommonAncestor(root,p,q);
node.push_back(tmp);
}
}
return NULL;
}
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q)
{
if(!root||root==q||root==p) return root;
TreeNode*left = lowestCommonAncestor(root->left,p,q);
TreeNode*right = lowestCommonAncestor(root->right,p,q);
TreeNode* ret;
((ret=root)&&(left && right))||(ret = left)||(ret = right);
return ret;
}
866. 回文素数
题解:根据描述,只需要从N向上开始遍历,判断N是否同时满足回文和素数。在数字N大小在一千万和一亿之间,直接取N为一亿。因为在这范围没有满足的素数。
其实还可以优化,不存在位数个数是偶数的回文数且是素数的数,因此11至100,一千至一万,十万至一百万,一千万至一亿之间是不存在满足题目条件的数。
int primePalindrome(int N) {
while(true){
if(N==reverse(N)&&isPrime(N)) return N;
N++;
if(11<N&&N<100) N = 100;
if(1000<N&&N<10000) N = 10000;
if(100000<N&&N<1000000) N = 1000000;
if(10000000<N&&N<100000000) N = 100000000;
}
return 0;
}
bool isPrime(int N) {
if (N < 2) return false;
int R = (int) sqrt(N);
for (int d = 2; d <= R; ++d)
if (N % d == 0) return false;
return true;
}
int reverse(int N) {
int ans = 0;
while (N > 0) {
ans = 10 * ans + (N % 10);
N /= 10;
}
return ans;
}
864. 获取所有钥匙的最短路径
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Keras之fit_generator与train_on_batch用法
- django美化后台django-suit的安装配置操作
- python读取excel进行遍历/xlrd模块操作
- 浅谈Keras的Sequential与PyTorch的Sequential的区别
- python 制作python包,封装成可用模块教程
- 使用python脚本自动生成K8S-YAML的方法示例
- Python虚拟环境库virtualenvwrapper安装及使用
- tp5框架内使用tp3.2分页的方法分析
- YII框架常用技巧总结
- PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
- PHP切割汉字的常用方法实例总结
- Laravel Validator 实现两个或多个字段联合索引唯一
- php实现的顺序线性表示例
- pytorch快速搭建神经网络_Sequential操作
- PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】