题目:
给你一个数组 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.youkuaiyun.com/u010983881/article/details/77503519