![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
南归北渡
追求卓越
展开
-
【算法】删除一个字符串所有的a,并且复制所有的b
先删除a,可以利用原来字符串的空间 int n = 0, numb = 0; for (int i = 0; s[i]; ++i) { if (s[i] != ‘a’) { s[n++] = s[i];} if (s[i] == ‘b’) { ++numb;} } s[n] = 0; 再复制b,注意字符串要加长 先计算字符串里有几个b,得到复制后的长度 然后“倒着”复制——惯用技巧 int new...原创 2018-11-26 17:04:14 · 1289 阅读 · 0 评论 -
一个字符串只包含*和数字,请把它的*号都放开头。
方法1 快排partition——数字相对顺序会变化 循环不变式: [0…i – 1]都是*, [i…j – 1]是数字,[j…n – 1]未探测 for (int i = 0, j = 0; j < n; ++j) if (s[j] == ‘*’) swap(s[i++], s[j]); 样例 0124 i=0, j = 0, 0124 交换s[0],不变,i = 1 i=1, j...原创 2018-11-26 17:18:53 · 753 阅读 · 0 评论 -
【算法学习】几个数组相关的算法
/** * @Title: firstMissingPositive * @author: duanyd * @Desc: 给一个数组,找到从1开始第一个不在里面的正整数。 * @date: 2018年11月28日 下午2:20:36 * @param A * @param n * @return */ int firstMissingPositive(int...原创 2018-11-28 16:25:23 · 287 阅读 · 0 评论