找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 864|回复: 0
收起左侧

[提问] 求教一道题

[复制链接]

3

主题

1

精华

261

积分

高级会员

Rank: 3Rank: 3

积分
261
发表于 10-17-2015 12:51 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
关于Almost Sorted Array, 有一个case没过,请问下哪里有Bug.
代码:
  1. #include <algorithm>

  2. class Solution {
  3. public:
  4.         bool isReversed(vector<int>& a, int start, int end) {
  5.                 for (int k = end; k > start; --k) {
  6.                         if (a[k - 1] < a[k])
  7.                                 return false;
  8.                 }
  9.                 return true;
  10.         }
  11.        
  12.         bool isSorted(vector<int>& a, int start, int end) {
  13.                 for (int k = start; k < end; ++k) {
  14.                         if (a[k] > a[k + 1])
  15.                                 return false;
  16.                 }
  17.                 return true;
  18.         }
  19.        
  20.         bool isAlmostSorted(vector<int> &a) {
  21.                 if (a.size() < 2) return true;
  22.                 int i, j;
  23.                 for (i = 0; i + 1 < a.size(); ++i) {
  24.                         if (a【i】 > a[i + 1])
  25.                                 break;
  26.                 }
  27.                 if (i + 1 == a.size()) return true;
  28.                 for (j = a.size() - 1; j > 0; --j) {
  29.                         if (a[j - 1] > a[j])
  30.                                 break;
  31.                 }
  32. //                if ((i > 0 && a[i - 1] > a[j]) || (j < a.size() - 1 && a【i】 > a[j + 1]))
  33. //                        return false;
  34.                 if (isReversed(a, i, j))
  35.                         return true;
  36.                 std::swap(a【i】, a[j]);               
  37.                 return isSorted(a, i, j);
  38.         }
  39. };
复制代码


谢谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表