【Leetcode】第203场周赛
A.圆形赛道上经过次数最多的扇区解题思路:模拟。代码展示:
123456789101112131415161718192021222324class Solution {public: vector<int> mostVisited(int n, vector<int>& rounds) { int sta = rounds[0]-1; int m = rounds.size(); int a[105],maxv = 1; memset(a,0,sizeof(a)); a[sta]=1; int i = 1; while(i<m){ sta = (sta + 1)%n; a[sta]++; maxv = max(maxv,a[sta]); if(sta == rounds[i]-1){ i+ ...
【Leetcode】第201场周赛
A.整理字符串解题思路:多次遍历数组,将前后字符ASCII码差值为32的两个字符删除,直到本次遍历没有改变数组。代码展示:
123456789101112131415161718class Solution {public: string makeGood(string s) { if(s.size()==0 || s.size()==1) return s; int i=0; while(1){ bool tmp=false; for(int i=0;i<s.size()-1;){ if(fabs(s[i]-s[i+1])==32){ tmp=true; if(i==0 && s.size()==2) return ""; else s.erase(i,2); ...
【Leetcode】第200场周赛
A.统计好三元组解题思路:三重遍历所有情况。判断三元组是否满足条件。代码展示:
123456789101112131415class Solution {public: int countGoodTriplets(vector<int>& arr, int a, int b, int c) { int ans=0,n=arr.size(); for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ for(int k=j+1;k<n;k++){ if(fabs(arr[i]-arr[j])<=a && fabs(arr[j]-arr[k])<=b&&fabs(arr[k]-arr[i])<=c) ans++; } ...
【Leetcode】第199场周赛
A.重新排列字符串解题思路:开个新数组或者map存储对应序号的字符,然后按序输出。代码展示:
123456789101112class Solution {public: string restoreString(string s, vector<int>& indices) { map<int,char> q; for(int i=0;i<s.length();i++) q[indices[i]]=s[i]; string ans=""; for(int i=0;i<s.length();i++) ans+=q[i]; return ans; }};
B.灯泡开关 IV解题思路:遍历灯泡数组,从前往后翻转,如果前一状态与此时状态不同,则翻转灯泡。代码展示:
123456789101112131415class Solution {public: ...