[leetcode]
2015-10-06 10:51
309 查看
1. MoveZeros
class Solution { public: void moveZeroes(vector<int> &num) { /* two pointers*/ vector<int>::iterator itfront, itbehind; itfront = itbehind = num.begin(); //return an iterater while (itfront != num.end()) { if (*itfront != 0) // if not zero,copy? to itbehind, then front++,behind++ { if (itfront != itbehind) { *itbehind++ = *itfront++; } else { itfront++; itbehind++; } } else // if itfront is zero,front++ { itfront++; } } while (itbehind != num.end()) { *itbehind++ = 0; } } };
2. FirstBadVersion
// Forward declaration of isBadVersion API. bool isBadVersion(int version); class Solution { public: int firstBadVersion(int n) { int start=1,end=n; int mid; while (start<=end) { // bug when start=end=1 //mid=start/2+end/2; /*or:operator priority mid=start+(end-start)>>1; data overflow mid=(start+end)/2*/ mid = start+(end-start)/2; if(!isBadVersion(mid)) // not bad version { start=mid+1; } else // bad version { if ((mid==1 )||(!isBadVersion(mid-1))) //mid-1 is not bad version (mid>1) return mid; else end=mid-1; } } } };
3. MissingNumber
class Solution { public: int missingNumber(vector<int>& nums) { int size=nums.size(); // not in loop int bitret=nums[0]^size; for (int i=1;i<size;i++) { bitret^=nums[i]^i; //one loop } return bitret; } };
相关文章推荐
- 编译器的工作过程
- Fast-RCNN解析:训练阶段代码导读
- QT5 学习之路29---绘制设备
- 错误 2 error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?
- 学习Object类
- go语言最新版本 下载地址
- windows下的getopt/getoptlong函数
- 在消逝中行走
- 3. 定义一个分数类(Fraction) 实例变量:分子,分母 方法:初始化方法(2个参数),便利构造器,约分,打印,加,减,乘,除。
- wget 增加单个文件下载限制大小
- C#实现DES加密解密,AES加密解密
- Win10预览版10558:PC系统首次可下载《电话》应用
- 建立顺序栈算法库
- 一夜回到“解放前”的上班族 该如何把钱赚回来
- js的压缩
- [网址查看]微软纽约Win10新品发布会倒计时:10月6日北京时间晚上10点
- C#表达式及其组成
- Java super关键字(android中常见)
- calabash安装和使用
- [lintcode] Binary Tree Preorder Traversal