###循环与非循环效率
使用循环时间复杂度,执行会增加
例如:使用三元式相加,执行用时0ms
class Solution {
public int game(int[] guess, int[] answer) {
return ((guess[0]==answer[0])?1:0) +
((guess[1]==answer[1])?1:0) +
((guess[2]==answer[2])?1:0);
}
}
使用循环,
class Solution {
public int game(int[] guess, int[] answer) {
int result = 0;
for(int i=0;i<3;i++){
if(guess[i]==answer[i]){
result++;
}
}
return result;
}
}
字符串J和S,S中包含J中字符的个数
class Solution {
public int numJewelsInStones(String J, String S) {
int result = 0;
// for(int i=0;i<J.length();i++){
// for(int j=0;j<S.length();j++){
// String a = J.substring(i,i+1);
// String b = S.substring(j,j+1);
// if(a.equals(b)){
// result++;
// }
// }
// }
HashMap<String,Integer> map = new HashMap<String,Integer>();
for(int i=0;i<S.length();i++){
String b = S.substring(i,i+1);
if(map.get(b) == null){
map.put(b,1);
}else{
map.put(b,map.get(b)+1);
}
}
for(int j=0;j<J.length();j++){
String a = J.substring(j,j+1);
if(map.containsKey(a)){
result+=map.get(a);
}
}
return result;
}
}