在写火星人中,我用到了vector数组,但是答案却和用数组的答案出现了差错,蓝桥杯提交出错

题目

img

img


正确题解


```c++
#include 
using namespace std;
int n,m;
int x;
int s[10010];
int cnt;
int main()
{
  cin>>n>>m;
  for(int i=0;i>s[i];
  }
  while(next_permutation(s,s+n)){
    cnt++;
    if(cnt==m)
    {
      for(int i=0;i" ";
      }
      break;
    }
  }
  return 0;
}

我的解法

```c++
#include
using namespace std;
int main(){
    int n,m,num;
    vector<int> arr;
    cin>>n>>m;
    for(int i=0;i>num;
        arr.push_back(num);
    }
    sort(arr.begin(),arr.end());
    for(int j=0;jnext_permutation(arr.begin(),arr.end());
    }
    for(int k=0;ksize();k++){
            cout<" ";
        }
        return 0;
}

这个已找到解决方法,解法是将sort(arr.begin(),arr.end())去掉,因为本题要求的是从当前位置继续全排列。