AHaiTang's Blog
  • 🔍搜索
  • 🏠主页
  • 📚文章
  • ⏱时间轴
  • 🧩分类
  • 🔖标签
  • 🙋🏻‍♂️关于
  • 🤝友链
主页 » Tags

双指针

双指针

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <bits/stdc++.h> using namespace std; using i64 = long long; void solve() { i64 n; cin >> n; i64 N = 1e5 + 10; vector<i64> nums(N, 0); vector<i64> flag(N, 0); for (i64 i = 1; i <= n; i++) cin >> nums[i]; i64 ans = 0; for (i64 i = 1, j = 1; i <= n; ++i) { flag[nums[i]] ++; while(j <= i && flag[nums[i]] > 1 ) { flag[nums[j]] --; j ++; } ans = max(ans,i - j + 1); } cout << ans << "\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); solve(); return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 void solve() { i64 n, m, x; cin >> n >> m >> x; vector<i64> a(n + 1, 0); vector<i64> b(m + 1, 0); for(i64 i = 1; i <= n; i++) cin >> a[i]; for(i64 i = 1; i <= m; i++) cin >> b[i]; i64 l = 1, r = m; while(l <= n && r > 0) { if(a[l] > x) break; if(a[l] + b[r] > x) r--; if(a[l] + b[r] == x) { cout << l - 1 << " " << r - 1 << '\n'; l++; } if(a[l] + b[r] < x) l++; } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); solve(); return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include <bits/stdc++.h> using namespace std; using i64 = long long; void solve() { i64 n, m; cin >> n >> m; vector<i64> a(n + 1, 0); vector<i64> b(m + 1, 0); for(i64 i = 1; i <= n; i++) cin >> a[i]; for(i64 i = 1; i <= m; i++) cin >> b[i]; i64 l = 1, r = 1; while(l <= n && r <= m) { if(a[l] == b[r]) l++; r++; } if(l == n + 1) cout << "Yes\n"; else cout << "No\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); solve(); return 0; }

2025-04-28 · 1 分钟 · AHaiTang
© 2025 AHaiTang's Blog · Powered by Hugo & PaperMod
本站已运行
访问量次 访客数人次