1619
题目
给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。
思路
先排序,起始位置为数组长度的5%,结束为止为数值长度的95%,最后求均值所需要的长度为90%
代码
class Solution {
/**排序后用5%开头 用95%结尾 最后用90%的长度 */
public double trimMean(int[] arr) {
Arrays.sort(arr);
double sum=0;
for(int i=arr.length/20;i<arr.length*19/20;i++){
sum=sum+arr[i];
}
return sum/(arr.length*0.9);
}
}
520
题目
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如 “USA” 。
单词中所有字母都不是大写,比如 “leetcode” 。
如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
思路
统计大写小写字母的个数,如果全大写,true;如果全小写,TRUE;如果只有一个大的并且第一个是大的,TRUE
注意:
小写字母的ASCII码值比大写的大
代码
class Solution {
public boolean detectCapitalUse(String word) {
int daxiecount=0;
int xiaoxiecount=0;
for(int i=0;i<word.length();i++){
if(word.charAt(i)>='a'){
xiaoxiecount++;
}else{
daxiecount++;
}
}
if(daxiecount==word.length()){
return true;
}
if(xiaoxiecount==word.length()){
return true;
}
if(daxiecount==1&&word.charAt(0)<'a'){
return true;
}
return false;
}
}
1848
、给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个下标 i ,满足 nums[i] == target 且 abs(i - start) 最小化 。注意:abs(x) 表示 x 的绝对值。
思路
class Solution {
public int getMinDistance(int[] nums, int target, int start) {
int res=Integer.MAX_VALUE;
for(int i=0;i<nums.length;i++){
if(target==nums[i]&&res>Math.abs(i-start)){
res=Math.abs(i-start);
}
}
return res;
}
}