575
思路
- 如果糖果种类数<=数组长度的一半,那么妹妹可以拿到所有种类的糖果。ans = 糖果种类数
- 如果糖果种类数>数组长度的一半,那么妹妹能拿到的所有糖果都互不相同。ans = candyType.length/2
二者取小即可。
代码
class Solution {
public int distributeCandies(int[] candyType) {
Set<Integer>set=new HashSet<>();
for(int n:candyType){
set.add(n);
}
int num=candyType.length/2;
return Math.min(set.size(),num);
}
}
929
这题太绕了,总结:@之前的字符串中如果有“.” 不碍事,如果有’+",不要该符号之后的字符串
放入set中,看有几个
代码
class Solution {
public int numUniqueEmails(String[] emails) {
Set<String>set=new HashSet<>();
for(String email:emails){
String[]emailspart=email.split("@");
emailspart[0]=emailspart[0].split("\\+")[0];
emailspart[0]=emailspart[0].replace(".","");
set.add(emailspart[0]+"@"+emailspart[1]);
}
return set.size();
}
}
374
语文不好都读不懂题了
/**
* Forward declaration of guess API.
* @param num your guess
* @return -1 if num is lower than the guess number
* 1 if num is higher than the guess number
* otherwise return 0
* int guess(int num);
*/
public class Solution extends GuessGame {
public int guessNumber(int n) {
int left=1;
int right=n;
while(right>left){
int mid=left+(right-left)/2;
if(guess(mid)==0){
return mid;
}else if(guess(mid)>0){
left=mid+1;
}else if (guess(mid)<0){
right=mid-1;
}
}
return left;
}
}