leetcode.permutations
1. 遞迴,若初始陣列有序,則生成的排列字典序有序
class solution
private:
vector
> res;
vector
vec,vis;
int n;
void f(vector
&vis, vector
&nums)
for(int i=0; iif(vis[i]) continue;
vec.push_back(nums[i]);
vis[i] = 1;
f(vis, nums);
vis[i] = 0;
vec.pop_back();}}
};
2.利用stl中的next_permutation
,若初始陣列有序,則生成的排列有序。
class solution ;
while(next_permutation(nums.begin(), nums.end()))
res.push_back(nums);
return res;
}};
3.利用組合數學第五版56頁的方法:
迴圈執行以下步驟:
(1)找到最大的可移動整數m,若不存在,則退出
(2)交換m與它指向的與它相鄰的數
(3)改變所有大於m的數的方向。
class solution ;
while(1)
if(index == -1) break;
for(int i=0;iif(nums[i]>nums[index]) d[i]=-d[i];
swap(nums[index], nums[index+d[index]]);
swap(d[index], d[index+d[index]]);
//for(auto k : nums) cout << k << " " ;
//cout << endl;
res.push_back(nums);
}return res;
}};
生成1 n的排列的三種方法
include include const int maxn 10 bool used maxn 1 int n,a maxn 1 void search int i for int j 1 j n j void print permutation int n,int a,int cur 用 a傳a...
生成隨機數的三種方法
1.math類的靜態方法random double math.random 0 1 之間的double型數 2.random r new random r.nextdouble 在 0 1 之間的double型數 r.nextfloat 在 0 1 之間的float型數 r.nextint 在int...
三種方法 2020 11 23
利用連線類,例項化得到連線物件 連線類 連線物件 new 連線類 cmd.executescalar cmd.excutereader 關注其中一條資料 物件名.read 獲取關注列所對應的值 console.writeline 物件名 name while 物件名.read 功能,聚焦下一行資料。...