算法
Simon|
这个作者很懒,什么都没留下…
展开
-
交换两个数的两种方法
1:用临时变量 1.1 :直接交换 int a = 10; int b = 50; int c; c = a; a = b; b = c; 1.2:指针交换 void change(int *a, int *b) { int c; c = *a; *a = *b; *b = c; } 1.3:引用交换 void change(int &a, int &b)原创 2017-07-24 10:04:08 · 429 阅读 · 0 评论 -
二分查找
三种二分模板,>=,>,=。<的话,=下标减一就好了。最后一个=的话,>下标减一就好了。注意:这里的mid不要用(l+r)/2,因为可能会溢出。//第一个 大于等于 int findFirstBigAndEqual(vector<int> a, int num) { int n = a.size(); int l = 0; int r = n - 1; ...原创 2018-05-03 16:09:02 · 155 阅读 · 0 评论 -
美团2018年CodeM大赛-初赛B轮 C题低位值
链接:https://www.nowcoder.com/acm/contest/151/C来源:牛客网题目描述定义lowbit(x) =x&(-x),即2^(p-1) (其中p为x的二进制表示中,从右向左数第一个1的位置),例如lowbit(10)=2,lowbit(3)=1。 定义函数f(l, r)为(其中0 <= l, r <= n): 输入n,求f(l, r...原创 2018-06-24 09:14:45 · 577 阅读 · 1 评论