前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!
习题(力扣周赛432)
1.跳过交替单元格的之字形遍历
题目链接: 3417. 跳过交替单元格的之字形遍历 - 力扣(LeetCode)
题面:
代码:
java
class Solution {
public List<Integer> zigzagTraversal(int[][] grid) {
List<Integer> ans = new ArrayList<>();
int m = grid.length;
int n = grid[0].length;
int flag = 1;
int x = 0;
int y = 0;
int r = 1;
while(x<m){
if(y!=0&&y%n==0&&r==1){
x+=1;
y = n-1;
r = 0;
continue;
}
if(y==-1&&r==0){
x+=1;
y = 0;
r = 1;
continue;
}
if(flag==1){
ans.add(grid[x][y]);
flag = 0;
if(r==1){
y++;
}else{
y--;
}
continue;
}
if(flag==0){
if(r==1){
y++;
}else{
y--;
}
flag = 1;
}
}
return ans;
}
}
2.pspspsps
题目链接: Problem - 2049B - Codeforces
题面:
代码:
java
#include<bits/stdc++.h>
using namespace std;
int t, n;
string s;
int main(){
cin >> t;
while(t --){
cin >> n >> s;
bool flag = 0;
for(int i = 0; i < n; i ++)
for(int j = 0; j < n; j ++){
if(s[i] == 'p' && s[j] == 's'){
if(!(i == n - 1 || j == 0)) flag = 1;
}
}
if(flag) cout << "NO\n";
else cout << "YES\n";
}
return 0;
}
后言
上面是数据结构相关的习题,下一篇文章会将其他相关的习题。