算法技巧
文章平均质量分 55
sparksnail
这个作者很懒,什么都没留下…
展开
-
C++中string对象与数值相互转换
1.将数值转换为string方法一:需要头文件 #includeostringstream o; if(o<<123) string str = o.str(); 方法二:to_string(data),这个函数直接把数字转换成字符串方法三:char tmp[10]; string str; sprintf(tmp, "%原创 2016-08-09 00:48:10 · 522 阅读 · 0 评论 -
二分查找时mid的计算方法
如果用mid=(low+high)/2,在运行时可能超时。原因是int类型最大表示范围是2147483647,详细分析见我之前的一篇文章点击打开链接如果输入的low和high都接近2147483647,两个数相加就会溢出,变成一个负数。例:#includeint main(){ int low = 2147483647; int high = 2147483646; pri原创 2016-10-21 21:34:00 · 3942 阅读 · 4 评论 -
数学运算符
位运算&按位与 1&1=1, 1&0=0, 0&1=0, 0&0=0 |按位或 1|1 = 1, 1|0 = 1, 0|1 = 1, 0|0 = 0 ^按位异或 1^1=0, 1^0=1, 0^1=1, 0^0=0~按位非 ~1 = 0, ~0 = 1 移位运算 >>右移 1111>>1=0111技巧:1.交换ab a=a∧b;原创 2016-10-03 00:10:53 · 654 阅读 · 0 评论 -
int类型整数的表示范围
32位int类型整数的范围,其中int类型是带符号整数。整数在计算机中表示为元码,最高位为符号位:1的元码为0000 0000 0000 00012147483647的元码为01111 1111 1111 1111所以最大的正整数是2147483647负数在计算机中表示为补码,最高位为符号位:-1的元码为1000 0000 0000 0001,反码为1111 1111原创 2016-10-18 23:47:24 · 94347 阅读 · 10 评论 -
C++ STL总结
1.stack#include声明:stack s;入栈:s.push(elem);出栈:s.pop();取栈顶元素:s.top();栈大小:s.size();判断是否为空:s.empty();2.queue#include声明:queue q;入队:q.push(elem);出队:s.pop();原创 2016-10-06 23:38:37 · 254 阅读 · 0 评论 -
动态规划
定义将一个问题分解为子问题递归求解,并将中间结果保存以避免重复计算的办法,可以称为“动态规划”。性质原创 2017-12-21 14:30:49 · 407 阅读 · 0 评论 -
partition
作用partitionpartitionpartition的作用是确定一个数字的最终位置。模板代码如下:def partition(self, A, n, first, last): while first <= last: while first <= last and A[first] <= n: first +...原创 2018-03-06 09:50:00 · 405 阅读 · 0 评论