題目描述:
給你兩個長度可能不等的整數陣列 nums1 和 nums2 。兩個陣列中的所有值都在 1 到 6 之間(包含 1 和 6)。
每次操作中,你可以選擇 任意 陣列中的任意乙個整數,將它變成 1 到 6 之間 任意 的值(包含 1 和 6)。
請你返回使 nums1 中所有數的和與 nums2 中所有數的和相等的最少操作次數。如果無法使兩個陣列的和相等,請返回 -1 。
示例 1:
輸入:nums1 = [1,2,3,4,5,6], nums2 = [1,1,2,2,2,2]
輸出:3
解釋:你可以通過 3 次操作使 nums1 中所有數的和與 nums2 中所有數的和相等。以下陣列下標都從 0 開始。
示例 2:
輸入:nums1 = [1,1,1,1,1,1,1], nums2 = [6]
輸出:-1
解釋:沒有辦法減少 nums1 的和或者增加 nums2 的和使二者相等。
示例 3:
輸入:nums1 = [6,6], nums2 = [1]
輸出:3
解釋:你可以通過 3 次操作使 nums1 中所有數的和與 nums2 中所有數的和相等。以下陣列下標都從 0 開始。
1 <= nums1.length, nums2.length <= 105
1 <= nums1[i], nums2[i] <= 6
方法1:
(1)如**;
class
solution
//消除差值
while
(diff !=0)
//找出要變換的個數
int c = diff / t;
if(mp1[i]
>= c)
else
break;}
}}return res;
return res;
}int
minoperations
(vector<
int>
& nums1, vector<
int>
& nums2)
//統計各個數字的個數
vector<
int>
mp1(7,
0); vector<
int>
mp2(7,
0);//計算兩組元素的和
int sum1 =
0, sum2 =0;
for(
int&i : nums1)
for(
int&i : nums2)
//若和相等,則直接返回true
if(sum1 == sum2)
//否則,獲得和的差值
int diff =
abs(sum1 - sum2)
;//呼叫計算變換次數的數字
if(sum1 < sum2)
return
get_res
(mp2, mp1,diff);}
};
351,最少移動次數使陣列元素相等 II
給定乙個非空整數陣列,找到使所有陣列元素相等所需的最小移動數,其中每次移動可將選定的乙個元素加1或減1。您可以假設陣列的長度最多為10000。例如 輸入 1,2,3 輸出 2 說明 只有兩個動作是必要的 記得每一步僅可使其中乙個元素加1或減1 1,2,3 2,2,3 2,2,2 答案 public ...
簡單題 1460 通過翻轉子陣列使兩個陣列相等
力扣刷題 給你兩個長度相同的整數陣列 target 和 arr 每一步中,你可以選擇 arr 的任意 非空子陣列 並將它翻轉。你可以執行此過程任意次。如果你能讓 arr 變得與 target 相同,返回 true 否則,返回 false 示例 1 輸入 target 1,2,3,4 arr 2,4,...
python3通過pymongo操作mongoDB
2,增刪改查 mongodb預設開啟的埠號是27017 import pymongo 連線本地mongo服務 client bendi pymongo.mongoclient db bendi client bendi db name col bendi db bendi col name impo...