报错截图
原因分析:
跑了程序,跑完后台没杀死这个进程,在后台驻留了,后面第二次编译报错无权限,(因为进程还在跑,无法动他)用腾讯电脑管家强制粉碎那个EXE文件之后好使了!!!!
leetcode46是我的CPP工程名称,点击进入cmake-build-debug目录里面
腾讯电脑管家粉碎功能如何找到??
如下:
似乎发现Clion软件bug了,100%复现成功。。。
先把完整代码编译运行2-3次,然后解除以下代码注释
// if(!visit[i]){
// visit[i]=1;
// path.push_back(nums[i]);
// }
注释掉
if(visit[i]){
continue;
}
visit[i]=1;
path.push_back(nums[i]);
然后浮现出来bug
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
vector<bool> visit;
vector<int> path;
vector<vector<int>> ans;
vector<vector<int>> permute(vector<int>& nums) {
visit=vector<bool>(nums.size()+10,0);
dfs(nums);
return ans;
}
void dfs(vector<int>& nums){
if(path.size()>=nums.size()){
ans.push_back(path);
return;
}
for(int i=0;i<nums.size();++i){
// if(!visit[i]){
// visit[i]=1;
// path.push_back(nums[i]);
// }
if(visit[i]){
continue;
}
visit[i]=1;
path.push_back(nums[i]);
dfs(nums);
if(!path.empty()){
path.pop_back();
}
visit[i]=0;
}
}
};
int main(){
vector<int> nums={1,2,3};
vector<vector<int>> ans=Solution().permute(nums);
for(auto& v:ans){
for(auto& i:v){
cout<<i<<" ";
}
cout<<endl;
}
}