题目链接:1732. 找到最高海拔(简单)
算法原理:
解法:遍历
0ms击败100.00%
时间复杂度O(N)
思路很简单,就类似"差分"的思想:A.每日一题------2536. 子矩阵元素加 1
当前"山高"=前一个数+差值,我们可以用一个临时变量 t 存储到现在的山高,然后用 mx 记录最大值,一次遍历即可解决
Java代码:
java
class Solution {
//1732. 找到最高海拔
public int largestAltitude(int[] gain) {
int t=0;
int mx=t;
for(int x:gain){
t+=x;
mx=Math.max(mx,t);
}
return mx;
}
}
题目链接:1189. "气球" 的最大数量(简单)
算法原理:
解法:统计
4ms击败41.91%
时间复杂度O(N)
思路非常简单,为了能凑出最多的 balloon,我们只需要统计这涉及到字符出现多少次,然后取最小值即可
需要注意的是,字符 l 和 字符 o 出现了两次,取最小值前需要先 / = 2
Java代码:
java
class Solution {
//1189. "气球" 的最大数量
public int maxNumberOfBalloons(String text) {
int b=0,a=0,l=0,o=0,n=0;
for(int i=0;i<text.length();i++){
char c=text.charAt(i);
if(c=='b') b++;
else if(c=='a') a++;
else if(c=='l') l++;
else if(c=='o') o++;
else if(c=='n') n++;
}
l/=2;o/=2;
return Math.min(b,Math.min(a,Math.min(l,Math.min(o,n))));
}
}