#include "stdafx.h"
/************************************************************************/
/*编程解决三色旗问题,一个字符型数组color,其中每个元素值为'R','W','B'三
/*者之一(代表红、蓝、白三色)编程实现把数组中元素重新排列:所有蓝色在前,
/*白色其后,红色最后。例如:原数组RWRRWBBRWRWR,重排后,BBBWWWRRRRR。
/************************************************************************/
#include <iostream>
using namespace std;
enum{
BLUE='B',
WHITE='W',
RED='R'
};
inline void swap(char& f, char& e)
{
char tmp=f; f=e; e=tmp;
}
//三色旗问题标准算法
int OrderFlags(char flags[], int size)
{
int bM, wM, rM;
bM = wM = 0;
rM= size - 1;
int count=0;
while(wM <= rM) //必须白色和红色标志重合
{
if(flags[wM] == WHITE) //如果为白色,则白色标志后移
{
++ wM;
}
else if(flags[wM] == BLUE) //如果为蓝色,则跟第一个白色进行交换
{
swap(flags[wM],flags[bM]);
++ count;
++wM, ++bM; //白色和蓝色各增加一个
}else{
//如果是红色,则从尾部向前寻找第一个非红色的字符跟这个字符替换
while(wM < rM && flags[rM] == RED) --rM; //前溯
swap(flags[wM],flags[rM]);
++ count;
--rM; //有一个红色归位了
}
}
return count;
}
int _tmain(int argc, _TCHAR* argv[])
{
char test[]="RWRRWBBRWRWR";
int len=strlen(test);
cout<<test<<" "<<len<<endl;
cout<<OrderFlags(test,len)<<endl;
cout<<test<<endl;
return 0;
}
相关推荐
关于并网继电器的继电器自检逻辑及实现方式
对于常规的光伏并网逆变器来说,继电器控制至关重要。继电器一般位于逆变电感后,共模电感前,用于将逆变电压与电网电压脱开,一般国外有双继电器的安规强制认证要求,国内目前只需要单继电器要求(后续应该会有双继电器要求,个人感觉)
[小记]红黑树的插入和删除操作
今天看了看红黑树,重点是红黑树的插入和删除 红黑树特性 1) 节点是红色或者黑色 2) 根节点是黑色 3) 所有的叶节点(NIL节点)是黑色 4) 如果有个节点是红色,则其子节点必然是黑色 5) 从任一节点到其叶子节点的所有简单路径包含有相同数目的黑色节点 从根到叶节点最短路径的情况,所有节点全为红色 从根到叶节点最长路径的情况,为一个红色节点一个黑色节点间隔路径
新手必看:如何用R/qtl快速完成QTL定位分析(附实战代码)
本文为新手提供了使用R/qtl进行QTL定位分析的完整实战指南。内容涵盖从环境搭建、数据准备与清洗,到核心分析流程(包括遗传图谱计算、单QTL扫描、置换检验确定阈值)以及进阶结果可视化的全步骤。通过清晰的代码示例,帮助读者快速掌握这一数量遗传学关键分析技术,实现从数据到QTL峰值的完整分析闭环。
[小记]模板的泛化,全特化和偏特化
1)模板类的特化 //1)类的特化 //泛化 template struct My { My(){cout<<"General Version\n";} void test(); }; template //泛化必须带所有泛化的参数 void My::test() { cout<<"General Version: Test()\n"; } //完全特化 templat
mipi协议中的calibration和scramble模式
在MIPI(Mobile Industry Processor Interface)协议中,calibration(校准)和scramble(加扰)模式是两个重要的特性,它们分别用于优化数据传输的准确性和减少信号干扰。
DIY玩家必备:用SSS1623芯片打造高性价比USB麦克风(附完整电路图)
本文详细介绍了如何利用SSS1623芯片DIY高性价比USB麦克风,包括元件选型、电路设计、PCB布局及调试技巧。通过完整的电路参考设计和实用建议,帮助电子爱好者打造专业级录音设备,实现免驱动即插即用功能。
[小记]二叉树的先序中序后序递归非递归遍历,层次遍历和完全二叉树的判断[4.24更新]
// BinaryTree.cpp : Defines the entry point for the console application. // #include "stdafx.h" /************************************************************************/ /* 二叉树的递归,非递归的前序,中序和后序遍历 /*
网络虚拟化介绍(OVS、DVS)
网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。
[小记]C++阴暗面,笔记,注释
一、不以为然 不断变更的标准,迫使我们需要不断更新已有代码。 作者列出了几点其实影响并不是很大(循环变量的scope;头文件后缀;名字空间)。而且,为了标准的进步,偶尔做出的妥协也是应该的吧。 不断变更的style,作者举得例子是: Old and busted: for (int i = 0; i n; i++) New hotness: for (in
40、基于指令的GPU编程:OpenACC与OpenMP的深入解析
本文深入解析了两种基于指令的GPU编程模型——OpenACC和OpenMP。从编程复杂度、数据处理方式和性能表现等多个方面对两者进行了对比分析,并结合实际应用场景提供了选择建议。通过详细的代码示例和性能测试结果,帮助开发者更好地理解和应用这两种编程模型,以充分发挥GPU的并行计算能力。
YOLO26涨点改进 | 全网首发Conv独家改进篇 | CVPR 2025 | YOLO26引入FDConv频率动态卷积改进,含FDC3k2二次创新,小目标检测,能够捕捉更加丰富和复杂的特征信息
本文提出了一种频率动态卷积(FDConv)模块,用于改进YOLO26目标检测模型的性能。FDConv通过在傅里叶域内划分参数预算,构建具有频率多样性的权重,有效提升了模型对低频和高频信息的处理能力。该模块包含内核空间调制(KSM)和频率带调制(FBM)两个关键组件,分别实现空间级和频域级的动态调节。实验表明,FDConv仅增加3.6M参数就能超越其他需要大幅增加参数的方法,并在目标检测、实例分割等任务中表现优异。文章详细介绍了FDConv的原理、实现方法及在YOLO26中的集成方式,提供了完整的代码实现。
[小记]关于静态变量,有点意想不到的结果
1)静态变量 int g=1; int foo_func() { static int val; val=g++; return val; } void main() { cout<<foo_func()<<foo_func()<<foo_func()<<endl; //结果 321 } 如果改成 int g=1; int foo_func() {
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界
在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和
K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘
长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。
排序算法深度笔记(下):非比较类排序的线性突破与工程边界
排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)
优选算法:分治-归并排序
交易逆序对的总数
算法日常・每日刷题--<动态规划>42
本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。
408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆
2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。
408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路
2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。
牛客周赛165C题(前后缀性质,递推,排序,枚举)
题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)
【MPC 算法】Python 实战:模型预测控制(MPC)算法原理与代码实现
本文介绍模型预测控制(MPC)原理与Python实现。MPC通过滚动优化预测未来状态,结合系统模型、目标函数与约束条件,动态生成最优控制序列。以一阶温度系统为例,使用CVXPY构建凸优化问题,实现加热功率的智能调控。代码包含模型预测、目标函数设计(含温度跟踪与控制平滑惩罚)、输入约束及滚动更新机制。仿真结果表明,MPC能快速稳定温度至目标值60℃,且控制动作平滑合理,体现其在复杂系统中的优越性。
算法61,判定是否为字符重排
两字符串能互为重排 ⇔。
算法日常・每日刷题--<动态规划>32
给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。
【前缀和+复合离散化】题解:双色矩形(two)_数据结构_算法优化_预处理_二维前缀和_STL_C++算法竞赛
给定一个 $n \times n$ 的黑白棋盘,初始按 $i+j$ 奇偶染色,经 $k$ 个格子颜色翻转后,求子矩形中黑白格子数差的绝对值最大值。由于 $n$ 可达 $10^9$,但 $k \leq 50$,可离散化关键点。枚举所有由修改点构成的矩形及其四边向外扩展(共 $16$ 种扩展方式),利用二维前缀和快速计算变化量,结合奇偶性判断多出的格子颜色,最终取最大绝对差。时间复杂度为 $O(k^4)$,在 $k \leq 50$ 下可行。
算法札记:几何分布在算法题UVA1262的运用
集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。
2617



被折叠的 条评论
为什么被折叠?



