題目:
給你一個數組 candies 和一個整數 extraCandies ,其中 candies[i] 代表第 i 個孩子擁有的糖果數目。
對每一個孩子,檢查是否存在一種方案,將額外的 extraCandies 個糖果分配給孩子們之後,此孩子有 最多 的糖果。注意,允許有多個孩子同時擁有 最多 的糖果數目。
示例1
輸入:candies = [2,3,5,1,3], extraCandies = 3
輸出:[true,true,true,false,true]
解釋:
孩子 1 有 2 個糖果,如果他得到所有額外的糖果(3個),那麼他總共有 5 個糖果,他將成爲擁有最多糖果的孩子。
孩子 2 有 3 個糖果,如果他得到至少 2 個額外糖果,那麼他將成爲擁有最多糖果的孩子。
孩子 3 有 5 個糖果,他已經是擁有最多糖果的孩子。
孩子 4 有 1 個糖果,即使他得到所有額外的糖果,他也只有 4 個糖果,無法成爲擁有糖果最多的孩子。
孩子 5 有 3 個糖果,如果他得到至少 2 個額外糖果,那麼他將成爲擁有最多糖果的孩子。
示例2:
輸入:candies = [4,2,1,1,2], extraCandies = 1
輸出:[true,false,false,false,false]
解釋:只有 1 個額外糖果,所以不管額外糖果給誰,只有孩子 1 可以成爲擁有糖果最多的孩子。
六一彩蛋啊,思路假設把全部糖果都給一個孩子,只要該孩子持有糖果數+額外糖果數>=持有最多糖果的孩子的糖果數(分配前),則該孩子滿足條件,代碼如下
class Solution {
public:
vector<bool> kidsWithCandies(vector<int>& candies, int extraCandies) {
int maxN = *max_element(candies.begin(), candies.end());
vector<bool> ans;
for(int candie:candies){
if(candie+extraCandies>=maxN)
ans.push_back(true);
else ans.push_back(false);
}
return ans;
}
};
運行結果:
連着幾天做的簡單題,還是得稍微做點別的,所以另外把43. 字符串相乘做了
題目:
給定兩個以字符串形式表示的非負整數 num1
和 num2
,返回 num1
和 num2
的乘積,它們的乘積也表示爲字符串形式。
示例1:
輸入: num1 = "2", num2 = "3"
輸出: "6"
示例2:
輸入: num1 = "123", num2 = "456"
輸出: "56088"
說明:
num1 和 num2 的長度小於110。
num1 和 num2 只包含數字 0-9。
num1 和 num2 均不以零開頭,除非是數字 0 本身。
不能使用任何標準庫的大數類型(比如 BigInteger)或直接將輸入轉換爲整數來處理。
經典大數運算題,我的思路就是豎式運算,模仿手算的過程,先遍歷計算,用長度n1+n2的數組來存儲各自位上計算值,然後遍歷得到的結果數組來處理進位,代碼如下:
class Solution {
public:
string multiply(string num1, string num2) {
if(num1=="0"||num2=="0")
return "0";
int n1=num1.size(),n2=num2.size();
int tmp[n1+n2];
memset(tmp,0,sizeof(tmp));
int flag=0;
string ans="";
for(int i=0;i<n1;i++){
for(int j=0;j<n2;j++){
tmp[j+i]=(num1[n1-1-i]-'0')*(num2[n2-1-j]-'0')+tmp[i+j];
}
}
//處理進位
for(int i=0;i<n1+n2 ;i++){
tmp[i]=tmp[i]+flag;
flag=tmp[i]/10;
tmp[i]=tmp[i]%10;
ans+=(tmp[i]+'0');
}
reverse(ans.begin(),ans.end());
int i=0;
//去除開頭多餘的0
while(ans[i]=='0') i++;
ans=ans.substr(i);
return ans;
}
};
運行結果:
另外還可以在處理的過程中做進位的處理以及專門處理大數運算的Karatsuba,參考如下,持續埋坑中
https://leetcode-cn.com/problems/multiply-strings/solution/you-hua-ban-shu-shi-da-bai-994-by-breezean/
https://blog.csdn.net/u010983881/article/details/77503519