1775 通過最少操作次數使陣列的和相等

2021-10-20 18:13:52 字數 1607 閱讀 3709

題目描述:

給你兩個長度可能不等的整數陣列 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...