C/C++
文章平均质量分 68
十觞亦不醉
编程浪子
展开
-
1041. Be Unique (20)
Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 104]. The first one who bets on原创 2016-01-21 11:29:19 · 265 阅读 · 0 评论 -
C++ sort 排序(降序、升序)使用总结
一、升序 C++ sort 函数十分方便,可以对内置类型也可对自定义类型进行快速排序,内置类型的使用比较简单,下面主要讨论自定义类型的排序,一般有如下几种使用方法:1.1 重载比较操作符 比如,我们现有一批学生,要根据他们的成绩进行升序排序,成绩如果相等则根据名字升序排序,那么我们可以如下操作:struct Student{ string name;原创 2016-01-22 20:48:14 · 66774 阅读 · 1 评论 -
GCC 下 tranform 调用 toupper, tolower 出错原因及解决
今天用 transform 将一个字符串进行大小写转换时,意外发现 GCC 下竟然会报错,之前在 VS2013 一直可以用,即如下代码:#include #include using namespace std;int main(){ string str = "heLLo"; transform(str.begin(), str.end(), str.begin原创 2016-01-23 19:16:12 · 791 阅读 · 0 评论 -
1045. Favorite Color Stripe (30)
最长公共非连续子序列的变种#include #include using namespace std;int favorite[205] = {0};int stripe[10005] = {0};int matrix[10005][205] = {0};int n, m, l;int lcs(){ for(int i = 1; i <= l; ++i){原创 2016-02-25 16:22:50 · 672 阅读 · 0 评论 -
左旋转字符串m位
题目描述 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdefg左旋转3位得到字符串defgabc。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。解法一:暴力移位 即每次移1位,移m次,空间复杂度为O(1),但时间复杂度达到了O(m*n);void leftshift1bit(原创 2016-04-04 14:04:44 · 556 阅读 · 0 评论 -
fibonacci 数列的快速幂求法
一、经典解法 Fibonacci数列的经典解法,即递归解法,如下int fib(int n){ if(n <= 0) return 0; if(n == 1) return 1; return fib(n-1) + fib(n-2);}代码是十分简洁,但有一个问题,即重复求解子问题,复杂度以 n 的指数方式递增。二、实用解法原创 2016-03-25 14:19:14 · 2784 阅读 · 0 评论 -
大数加法、减法、乘法、除法实现
〇、准备 这里,我们暂时只考虑正数的情况,负数请自行预处理,首先定义一些公用函数// num is positivevector toArray(const string& num){ vector arr; transform(num.rbegin(), num.rend(), back_inserter(arr), [](char c){ return原创 2016-03-26 17:26:49 · 1153 阅读 · 0 评论