classSolution{public:intminSwap(vector<int>& nums1, vector<int>& nums2){int n = nums1.size();int a =0, b =1;for(int i =1; i < n; i++){int at = a, bt = b;
a = b = n;if(nums1[i]> nums1[i -1]&& nums2[i]> nums2[i -1]){
a =min(a, at);
b =min(b, bt +1);}if(nums1[i]> nums2[i -1]&& nums2[i]> nums1[i -1]){
a =min(a, bt);
b =min(b, at +1);}}returnmin(a, b);}};
LCP 17. 速算机器人
代码实现
classSolution{public:intcalculate(string s){int x =1, y =0;for(char c : s){if(c =='A'){
x = x *2+ y;}else{
y = y *2+ x;}}return x + y;}};
LCP 39. 无人机方阵
代码实现
classSolution{public:intminimumSwitchingTimes(vector<vector<int>>& source, vector<vector<int>>& target){
unordered_map<int,int> mp1, mp2;int n = source.size();int m = source[0].size();for(int i =0; i < n; i++){for(int j =0; j < m; j++){
mp1[source[i][j]]++;
mp2[target[i][j]]++;}}int ans =0;for(auto it = mp2.begin(); it != mp2.end(); it++){if(!mp1.count(it->first)){
ans += it->second;}elseif(mp1[it->first]< it->second){
ans += it->second - mp1[it->first];}}return ans;}};