题解 | #最后k个元素#
最后k个元素
https://www.nowcoder.com/practice/9e497c068b8a4f53b0f0576f89ff4ebe
#include<bits/stdc++.h> #include <iterator> #include <ratio> #include <sys/types.h> #include <vector> using namespace std; void PrintVector(const vector<int>& v, int pos) { for (int i = 0;i<pos;i++) //这里选择用让i小于pos { cout << *(v.end() - 1 - i) << " ";//让容器从最后一个元素-i开始循环 输出当前指向的元素 } cout << endl; } int main() { int n, k; vector<int>v; cin >> n; cin >> k; for (int i = 0; i < n; i++) { int key = 0; cin >> key; v.push_back(key); } PrintVector(v, k); // write your code here...... return 0; }
这题感觉用迭代器来遍历的话会很麻烦 不如直接用i来做索引 让i小于k(也就是i最多等于k-1)从容器最后一个元素开始遍历 每次减i 当i大于等于k的时候 结束循环 也就刚好逆序打印到了 指定的位置