【每日刷题】Day165

【每日刷题】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(s[0]=='0') dp[0][1] = 1;//初始化

else dp[0][0] = 1;

for(int i = 1;i<n;i++)

{

dp[i][0] = s[i]=='0'?dp[i-1][0]:dp[i-1][0]+1;//填表

dp[i][1] = min(dp[i-1][0],s[i]=='1'?dp[i-1][1]:dp[i-1][1]+1);

}

return min(dp[n-1][0],dp[n-1][1]);

}

};

2. 424. 替换后的最长重复字符 - 力扣(LeetCode)

//思路:滑动窗口

class Solution {

public:

int characterReplacement(string s, int k)

{

int n = s.size();

int hash[27] = {0};

int left = 0,right = 0,max = 0,ans = 0;

while(right<n)

{

int ch = s[right]-'A';

hash[ch]++;

max = max>hash[ch]?max:hash[ch];//记录窗口内出现次数最多的元素的个数

if(right-left+1-max>k)

{

ans = ans>right-left?ans:(right-left);//记录最大窗口长度

hash[s[left++]-'A']--;

}

right++;

}

ans = ans>right-left?ans:(right-left);

return ans;

}

};

3. 1812. 判断国际象棋棋盘中一个格子的颜色 - 力扣(LeetCode)

//思路:找规律

//放松题

class Solution {

public:

bool squareIsWhite(string c)

{

int hash[8] = {1,2,3,4,5,6,7,8};

int ret1 = hash[c[0]-'a']%2,ret2 = (c[1]-'0')%2;

if((ret1&&ret2)||(!ret1&&!ret2)) return false;

return true;

}

}

相关推荐
linweidong2 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
郝学胜-神的一滴7 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
半桔7 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
HABuo8 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
我在人间贩卖青春8 小时前
C++之多重继承
c++·多重继承
颜酱8 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919108 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi9878389 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
DuHz9 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理
Polaris北极星少女9 小时前
TRSV优化2
算法