1590.使陣列和能被p整除
給你乙個正整數陣列 nums,請你移除 最短 子陣列(可以為 空),使得剩餘元素的 和 能被 p 整除。 不允許 將整個陣列都移除。
請你返回你需要移除的最短子陣列的長度,如果無法滿足題目要求,返回 -1 。
子陣列 定義為原陣列中連續的一組元素。
示例 1:
輸入:nums = [3,1,4,2], p = 6
輸出:1
解釋:nums 中元素和為 10,不能被 p 整除。我們可以移除子陣列 [4] ,剩餘元素的和為 6 。
示例 2:
輸入:nums = [6,3,5,2], p = 9
輸出:2
解釋:我們無法移除任何乙個元素使得和被 9 整除,最優方案是移除子陣列 [5,2] ,剩餘元素為 [6,3],和為 9 。
示例 3:
輸入:nums = [1,2,3], p = 3
輸出:0
解釋:和恰好為 6 ,已經能被 3 整除了。所以我們不需要移除任何元素。
示例 4:
輸入:nums = [1,2,3], p = 7
輸出:-1
解釋:沒有任何方案使得移除子陣列後剩餘元素的和被 7 整除。
示例 5:
輸入:nums = [1000000000,1000000000,1000000000], p = 3
輸出:0
1 <= nums.length <= 105
1 <= nums[i] <= 109
1 <= p <= 109
思路:這道題有點像974這道題
int minsubarray(vector& nums, int p)
int r=sum;
if(r==0)
int ans=nums.size();
sum=0;
ht[0]=-1;
for(int i=0;iht[sum%p]=i;
}return ans==nums.size()?-1:ans;
}
GPIO時鐘使能和串列埠時鐘使能的關係
由於stm32有很多外設,為降低功耗,每個外設都對應著乙個時鐘。在晶元剛剛上電時,這些時鐘都是被關閉的。如果想要外設工作,必須把相應的時鐘開啟。即當gpio口復用usart進行通訊時,必須要先使能gpio的時鐘,然後再使能具體外設的時鐘 usart的時鐘 1.stm32微控制器的i o埠配置步驟 1...
門控時鐘和時鐘使能
在fpga設計中,我們經常會使用分頻的方法來得到乙個我們需要的時鐘頻率,而在很多開發板廠家配套的教程裡,他們常常會使用計數器分頻得到的高低電平時鐘來當做驅動時鐘,這種方法簡單易懂,但是,在工程設計中,這種方法是不被允許的。門控時鐘就是使用計數器和邏輯門翻轉來產生的時鐘,下面是典型的門控時鐘 生成i2...
MFC 實現工具欄按鈕和選單使能禁能
cmainframe在應用程式空閒的時候才根據命令處理 on update command ui 更新介面,包括選單 工具欄。於是,正確的使能禁能按鈕只能通過命令流來處理。先在cmainframe類中設定乙個bool變數m bbuttonen。然後對相應的工具欄按鈕新增更新命令on update c...