一个有趣的题目
来源:互联网 发布:特价机票 知乎 编辑:程序博客网 时间:2024/05/20 16:34
给个数列
这题是我在面试的时候碰到的题目,当时没想到
首先,由于i位于最左边,所以首先可以处理
其次,需要强调一点,
这种做法确实是一个必要解,现在证明充分性。
证明:现在证明,对于
1.假如
2.假如
而如果
所以得证。
#include <bits/stdc++.h>using namespace std;bool solve(const vector<int>& A) { vector<int> left(A.size()); left[0] = 0x3f3f3f3f; for (int i = 1; i < A.size(); ++i) { left[i] = min(left[i - 1], A[i - 1]); } stack<int> S; for (int i = A.size() - 1; --i) { if (S.empty()) { S.push(A[i]); } else { if (left[i] < A[i] && left[i] < S.top() && S.top() > A[i]) { return true; } else { while (!S.empty() && S.top() < A[i]) { S.pop(); } S.push(A[i]); } } } return false;}
阅读全文
0 0
- 一个有趣的题目
- 一个有趣的题目
- 一个有趣的网络协议的题目
- if---else----一个有趣的题目
- 一个十分有趣的字符串算法题目
- 一个有趣python self的题目
- 一个很有趣的javascript题目
- 一道有趣的题目
- 一些有趣的题目
- 一道有趣的题目
- 有趣的题目
- 有趣的智力题(题目)
- bzoj有趣的题目
- 一道有趣的题目
- 一些有趣的题目
- 有趣的题目
- 一个有趣的题目—linux中的fork函数分析
- 从一个有趣的题目理解享元模式
- HIVE beeline使用shell 批量执行sql语句
- strtol,strtoll,strtoul, strtoull字符串转化成数字
- Error LNK1201:error writing to program database "xxx.pdb"
- 使用redis实现分布式锁
- 字符串操作-------去除两个字符之间的内容
- 一个有趣的题目
- cmd命令基础常识
- 一个 Yii + vue 项目(4)AR类简单操作
- PXE自动安装系统原理及配置
- 自动行为操控Steering(七)—避开障碍物(单体操控)
- XListView+ViewPager+SQLite
- elk的使用说明
- 【Android】多Fragment切换以及在主Activity中判断返回按键
- Unity_塔防固定路线_060