1、计算1-6个数的排列
输入n(1<=n<=4)
输出
从1到6中选n个数,能组成多少个n位数,且数中没有重复数字
#include <iostream>using namespace std;// 阶乘存储int fact[] = {1,1,2,6,24,120,720};int main(){int n = 0;cin >> n;cout << fact[6] / fact[6 - n] << endl;// 排列公式return 0;}
2、删除数组重复元素(要求常数空间复杂度)
输入:以空格间隔的整数升序数组
输出:无重复的数组
要求常数空间复杂度
#include <iostream>#include <vector>using namespace std;int main(){vector<int> nums;int n = 0;while (cin >> n) {nums.push_back(n);}int k = 0; // 记录有效的位置for (int i = 1; i < nums.size(); ++i) {if (nums[i] == nums[k]) {continue;} else{k++;nums[k] = nums[i];}}for (int i = 0; i <= k; ++i) {if (i > 0) {cout << " ";}cout << nums[i];}return 0;}
