【每日刷题】Day165

🥕个人主页:开敲🍉
🔥所属专栏:每日刷题🍍
🌼文章目录🌼
[1. LCR 092. 将字符串翻转到单调递增 - 力扣(LeetCode)](#1. LCR 092. 将字符串翻转到单调递增 - 力扣(LeetCode))
[2. 424. 替换后的最长重复字符 - 力扣(LeetCode)](#2. 424. 替换后的最长重复字符 - 力扣(LeetCode))
[3. 1812. 判断国际象棋棋盘中一个格子的颜色 - 力扣(LeetCode)](#3. 1812. 判断国际象棋棋盘中一个格子的颜色 - 力扣(LeetCode))

1. LCR 092. 将字符串翻转到单调递增 - 力扣(LeetCode)
//思路:动态规划

class Solution {
public:
int minFlipsMonoIncr(string s)
{
int n = s.size(),ans = 2000001;
vector<vector<int>> dp(n,vector<int>(2));
if(s0=='0') dp01 = 1;//初始化
else dp00 = 1;
for(int i = 1;i<n;i++)
{
dpi0 = si=='0'?dpi-10:dpi-10+1;//填表
dpi1 = min(dpi-10,si=='1'?dpi-11:dpi-11+1);
}
return min(dpn-10,dpn-11);
}
};
2. 424. 替换后的最长重复字符 - 力扣(LeetCode)
//思路:滑动窗口

class Solution {
public:
int characterReplacement(string s, int k)
{
int n = s.size();
int hash27 = {0};
int left = 0,right = 0,max = 0,ans = 0;
while(right<n)
{
int ch = sright-'A';
hashch++;
max = max>hashch?max:hashch;//记录窗口内出现次数最多的元素的个数
if(right-left+1-max>k)
{
ans = ans>right-left?ans:(right-left);//记录最大窗口长度
hashs\[left++-'A']--;
}
right++;
}
ans = ans>right-left?ans:(right-left);
return ans;
}
};
3. 1812. 判断国际象棋棋盘中一个格子的颜色 - 力扣(LeetCode)
//思路:找规律
//放松题
class Solution {
public:
bool squareIsWhite(string c)
{
int hash8 = {1,2,3,4,5,6,7,8};
int ret1 = hashc\[0-'a']%2,ret2 = (c1-'0')%2;
if((ret1&&ret2)||(!ret1&&!ret2)) return false;
return true;
}
}