第97场周赛
时间:2022-07-28
本文章向大家介绍第97场周赛,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
####
884. 两句话中的不常见单词
题解:根据藐视,只需要正确分割统计字符串A和字符串B,之后进行比较得出次数为一的子串即可。
vector<string> uncommonFromSentences(string A, string B) {
vector<string>ret;
map<string,int>tmp_A;
for(int i=0,j=0;i<A.size()&&j<A.size();j++){
if(A[j]==' '){
tmp_A[A.substr(i,j-i)]++;
i = j+1;
}
if(j==A.size()-1){
tmp_A[A.substr(i,j-i+1)]++;
}
}
for(int i=0,j=0;i<B.size()&&j<B.size();j++){
if(B[j]==' '){
tmp_A[B.substr(i,j-i)]++;
i = j+1;
}
if(j==B.size()-1)
tmp_A[B.substr(i,j-i+1)]++;
}
for(auto i:tmp_A){
if(i.second==1) ret.push_back(i.first);
}
return ret;
}
885. 螺旋矩阵 III
题解:只要定义好方向,在合适的地方转向即可。
vector<vector<int>> spiralMatrixIII(int R, int C, int r0, int c0) {
vector<vector<int>>ret = {{r0,c0}};
int dx = 0,dy=1,n=0,step=1;
while(ret.size()<R*C){
for(int i=0;i<step;i++){
r0+=dx;
c0+=dy;
if(r0>=0&&r0<R&&c0>=0&&c0<C)ret.push_back({r0,c0});
}
n++;
if(n%2==0) step++;
swap(dx,dy);
dy = -1*dy;
}
return ret;
}
886. 可能的二分法
题解:根据描述,本质上是要如何对图进行二分,使用DFS进行染色划分即可。
bool possibleBipartition(int N, vector<vector<int>>& dislikes) {
vector<int>color(N+1,-1);
vector<vector<int>>graph(N+1);
for(auto i:dislikes){
graph[i[0]].push_back(i[1]);
graph[i[1]].push_back(i[0]);
}
for(int i=1;i<N+1;i++){
DFS(color,i,graph);
}
for(auto i:dislikes){
if(color[i[0]]==color[i[1]]){
return false;
}
}
return true;
}
void DFS(vector<int>&color,int n,vector<vector<int>>&graph){
if(color[n]==-1){
color[n]=1;
}
for(auto point:graph[n]){
if(color[point]==-1) {
color[point]=!color[n];
DFS(color,point,graph);
}
}
}
887. 鸡蛋掉落
- 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 数组属性和方法
- RollViewPager无限轮播使用方法详解
- ubuntu16.04 升级内核的方法步骤
- Android 列表倒计时的实现的示例代码(CountDownTimer)
- Android 控件设置阴影效果
- 解决VScode配置远程调试Linux程序的问题
- Android EasyBarrage实现轻量级弹幕效果
- android 获取本机其他app的版本信息的示例代码
- android相册选择图片的编码实现代码
- ClickHouse和他的朋友们(2)MySQL Protocol和Read调用栈
- Android图片三级缓存的原理及其实现
- Android TextView实现带链接文字事件监听的三种常用方式示例
- Android ViewDragHelper使用介绍
- Android语音声波控件 Android条形波控件
- Ubuntu下安装CUDA10.0以及问题
- Android ListView实现单选及多选等功能示例