从最少交换次数到交换排序

 |

像往常一样,每周几题。今天这道题**( 最少交换次数 )**让我做了一次发散性的思考,先把题面搬过来,有收获的小伙伴可以进原题链接练练手。 最少交换次数 序号:#8 难度:非常难 时间限制:1000ms 内存限制:10M 描述 给出一个无序数列,每次只能交换相邻两个元素, 求将原数列变成递增数列的最少交换次数。 如:数列:2,3,1,交换3和1后变成:2,1…

阅读全文

split函数实现

 |

字符串分割函数split,将一个字符串按给定的定界符delim分割成字符串数组。实现的方式多种多样,由浅入深,从易到难,开始分割… 实现的方式有以下3种: 用cstring 库中的strtok函数实现 string类对字符串直接处理实现 正则表达式结合STL实现 用strtok函数实现 std::vector<std::string> split…

阅读全文

C++正则表达式库(std::regex)

 |

小米OJ 里的题有一个独特的数据输入方式,迫使我不得不去掌握一些高效处理字符串的方法,从正则开始。 知其所以然,请跳转 正则表达式之基本原理 。 std::regex 其常用函数(类)如下 regex_match() ,全词匹配。 regex_search(),搜索匹配。 regex_replace(),搜索匹配并替换。 std::regex_iterato…

阅读全文

C++ Win32网络编程

 |

最近计算机网络课需要我们做一个图片传输程序,在客户端上传输图片至服务器,要求服务器能过滤文件并展示客户端上传的图片,我带着亲爱的”C++”,开着”百度”,开始畅游”网络”,并在这里写下总结。 TCP与UDP都是OSI(Open System Interconnection 开放式系统互联)参考模型下第四层——传输层协议,在这里总结一下它们的特点。 TCP T…

阅读全文

二叉搜索树BST

 |

二叉搜索树(Binary Search Tree)又名二叉查找树、二叉排序树,它要么是一棵空树,要么满足以下条件: 若其左子树不为空,则左子树所有节点的值小于根节点的值; 若其右子树不为空,则其右子树所有节点值均大于他的根节点的值; 其左右子树也为二叉查找树。 一、 特点 通过中序遍历二叉搜索树可以得到一个有序的序列。另一方面,通过对一个序列构造二叉搜索树可…

阅读全文

并查集入门

 |

在《算法基础》书中, 并查集 又被称为 不相交集结构 :假设有1到N个对象,希望将这些对象分成不相交的集合,在任意给定时间里,每个对象都恰好在一个集合里。对于每个集合,选择一个成员作为集合的标签。例如决定用最小的对象作为标签,可以用”集合2”来表示集合{2,5,7,10}。 抽象结束。 作为一个受益者,我强烈建议先看这篇 超有爱的并查集~ 。 虽不能说是后无…

阅读全文