Broken Code
2016-01-30 06:08
309 查看
给一个sorted array 0 0 0 1 1 1 1,然后找出第一个1的位置。
边界情况:array为空或者全0。
思路:二分查找。为了优化,可以先判断最后一个数是不是0。
边界情况:array为空或者全0。
思路:二分查找。为了优化,可以先判断最后一个数是不是0。
class Solution { public: int FindBrokenCode(vector<int>& nums) { if (!nums.size() || nums.back() == 0) return -1; int left = 0, right = nums.size() - 1; while (left <= right) { int mid = (left + right) >> 1; if (!nums[mid]) left = mid + 1; else if (nums[mid] == 1 && (!mid || !nums[mid - 1])) return mid; else right = mid; } } };
相关文章推荐
- canvas
- 夺命雷公狗---微信开发16----自定义菜单的查询
- 10大经典数据挖掘方法
- ORACLE SQL性能优化系列 (四)
- ORACLE SQL性能优化系列 (三)
- ORACLE SQL性能优化系列 (二)
- Trapping Rain Water (Bar Height) -- LeetCode
- 欢迎使用CSDN-markdown编辑器
- svg
- 夺命雷公狗---微信开发15----编写进行创建自定义菜单
- Wunder Fund Round 2016 C. Constellation(贪心+计算几何)
- Eclipse安装颜色主题
- [LeetCode 061] Rotate List
- sublime 安装
- openCV学习记录:滤镜:线条&素描
- HDOJ 2894 DeBruijin(dfs构造欧拉回路)
- 工厂模式
- openCV学习记录:滤镜:木刻&怀旧
- Count and Say (Array Length Encoding) -- LeetCode
- ero-configuration Web Application Debugging with Xdebug and PhpStorm