题目:403. 田鸡过河 - 力扣(LeetCode)
O(n^2)水题
- class Solution {
- public:
- bool canCross(vector<int>& stones) {
- int n = (int) stones.size();
- vector<vector<int>> f;
- f.resize(n);
- f[0].push_back(1);
- int64_t temp;
- for (int i = 0; i < n - 1; i++) {
- vector<int>& t = f[i];
- sort(t.begin(), t.end());
- int j = i + 1;
- for (int k = 0; k < t.size(); k++) {
- if (k > 0 && t[k] == t[k - 1]) {
- continue;
- }
- temp = stones[i];
- temp += t[k];
- if (temp > stones[j]) {
- while (j < n - 1 && temp >= stones[j + 1]) {
- j++;
- }
- }
- if (stones[i] + t[k] == stones[j]) {
- if (j == n - 1) {
- return true;
- }
- if (t[k] > 1) {
- f[j].push_back(t[k] - 1);
- }
- f[j].push_back(t[k]);
- f[j].push_back(t[k] + 1);
- continue;
- }
- }
- }
- return false;
- }
- };
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |