LeetCode(35) Search Insert Position
2015-07-22 10:33
330 查看
递归版本 8ms
迭代版本 8ms
[code]class Solution { public: void search(vector<int> &nums, int index1, int index2, int target, int &index, bool &doHave) { if(index1 > index2) return; if(index1 == index2) { if(nums[index1] == target) { doHave = true; index = index1; } return; } int mid = index1 + (index2 - index1) / 2; if(nums[mid] == target) { doHave = true; index = mid; return; } if(nums[mid] > target) search(nums, index1, mid - 1, target, index, doHave); if(nums[mid] < target) search(nums, mid + 1, index2, target, index, doHave); } int searchInsert(vector<int>& nums, int target) { int index; bool doHave = false; search(nums, 0, nums.size() - 1, target, index, doHave); if(doHave == false) { int i = 0; for(; i < nums.size(); ) if(nums[i] < target) i++; else break; return i; } return index; } };
迭代版本 8ms
[code]class Solution { public: void search(vector<int> &nums, int index1, int index2, int target, int &index, bool &doHave) { if(index1 > index2) return; if(index1 == index2) { if(nums[index1] == target) { doHave = true; index = index1; } return; } int mid = index1 + (index2 - index1) / 2; if(nums[mid] == target) { doHave = true; index = mid; return; } if(nums[mid] > target) search(nums, index1, mid - 1, target, index, doHave); if(nums[mid] < target) search(nums, mid + 1, index2, target, index, doHave); } int searchInsert(vector<int>& nums, int target) { int index; bool doHave = false; //search(nums, 0, nums.size() - 1, target, index, doHave); int index1 = 0; int index2 = nums.size() - 1; while(index1 <= index2) { int mid = index1 + (index2 - index1) / 2; if(nums[mid] == target) { doHave = true; index = mid; break; } if(nums[mid] > target) { index2 = mid - 1; continue; } if(nums[mid] < target) { index1 = mid + 1; continue; } } if(doHave == false) { int i = 0; for(; i < nums.size(); ) if(nums[i] < target) i++; else break; return i; } return index; } };
相关文章推荐
- Could not publish server configuration for Tomcat v7.0 Server at localhost. Multiple Contexts have a
- Nutch+Hadoop集群搭建
- seo:robots
- Java Web乱码分析及解决方案(三)——响应乱码
- android数字签名
- 【转】ubuntu中的Wine详解
- wampserver的安装以及使用
- 申请亚马逊AWS一年免费服务器
- swiper超出部分出现滚动条
- 通过mod_python配置运行在Apache上的Django框架
- JDBC连接出错
- 好慢啊
- ListView的上拉刷新下拉加载更多
- C++ string 详解
- Eclipse ADT启动报“fail to load the jni shared library”问题解决方案
- 使用jQuery图表插件Sparklines来开发一个实用的网站PV(page view)实时监控应用
- Javascript高级程序设计读书笔记(第二章)
- 学习笔记:jquery1.9版本后废弃的函数和方法
- QQ群开放接口
- Java 应用