leetcode 33 Search in Rotated Sorted Array
来源:互联网 发布:ubuntu双系统安装教程 编辑:程序博客网 时间:2024/05/19 16:47
递归 (速度比较慢)
class Solution {public: int search(vector<int>& nums, int target) { size_t size = nums.size(); if (size == 0) return -1; return recur_search(nums, 0, size - 1, target); }private: int recur_search(vector<int> &v, size_t b, size_t e, int target){ size_t piv = (e + b) / 2; if (target == v[piv]) return piv; else if (e == b) return -1; // 只剩一个数且没有找到target if (v[b] <= v[piv]) { // 前面是顺序 if (target < v[piv] && target >= v[b]) return recur_search(v, b, piv - 1, target); else return recur_search(v, piv + 1, e, target); } else { // 后面是顺序 if (target > v[piv] && target <= v[e]) return recur_search(v, piv + 1, e, target); else return recur_search(v, b, piv - 1, target); } }};
思路完全一样
class Solution {public: int search(vector<int>& nums, int target) { size_t size = nums.size(); if (size == 0) return -1; size_t begin = 0; size_t end = size - 1; while (begin != end) { size_t piv = (begin + end) / 2; if (nums[piv] == target) return piv; if (nums[piv] >= nums[begin]) { // 前面顺序 if (target < nums[piv] && target >= nums[begin]) { // target在前面 end = piv -1; } else { // target在后面 begin = piv + 1; } } else { // 后面顺序 if (target <= nums[end] && target > nums[piv]) { // target 在后面 begin = piv + 1; } else { // target 在前面 end = piv - 1; } } } if (nums[begin] == target) return begin; else return -1; }};
阅读全文
0 0
- LeetCode(33)Search in Rotated Sorted Array
- [leetcode 33] Search in Rotated Sorted Array
- leetcode|33|Search in Rotated Sorted Array
- Leetcode 33 Search in Rotated Sorted Array
- Leetcode[33]-Search in Rotated Sorted Array
- leetcode 33 -- Search in Rotated Sorted Array
- Search in Rotated Sorted Array - LeetCode 33
- leetcode 33 Search in Rotated Sorted Array
- leetcode 33: Search in Rotated Sorted Array
- Leetcode #33 Search in Rotated Sorted Array
- LeetCode #33 Search in Rotated Sorted Array
- Leetcode#33||Search in Rotated Sorted Array
- leetcode 33 : Search in Rotated Sorted Array
- leetcode-33 Search in Rotated Sorted Array
- LeetCode 33: Search in Rotated Sorted Array
- LeetCode(33)-Search in Rotated Sorted Array
- leetcode-33-Search in Rotated Sorted Array
- 【leetcode】【33】Search in Rotated Sorted Array
- c
- uva 10806 从一个点到另外1个点的2条不重复边的路径
- DCB 结构体
- JAVA通信(2)--实现简单的RPC框架
- Mac电脑对Mac电脑如何屏幕共享
- leetcode 33 Search in Rotated Sorted Array
- Servlet之请求转发和重定向
- 注解
- 【个人备忘录】SQL SERVER乱码问题
- 经典的log4j.properties配置文件模板
- Spring 4.3.11.RELEASE文档阅读(一):overview
- android 弹出对话框时显示键盘
- SQLite常用的函数
- python中一些好用的关于机器学习的技巧