#力扣 LeetCode1742. 盒子中小球的最大數量 @FDDLC
阿新 • 來源:網路 • 發佈:2021-03-10
題目描述:
https://leetcode-cn.com/problems/maximum-number-of-balls-in-a-box/
Java程式碼:
class Solution {
public int countBalls(int l, int h) {
int[] cnt=new int[46];
for(int i=l;i<=h;i++){
int num=i,bitSum=0;
while(num!=0){
bitSum+=num%10;
num=num/10;
}
cnt[bitSum]++;
}
int ans=0;
for(int e:cnt)if(ans<e)ans=e;
return ans;
}
}

Java程式碼二:
class Solution {
public int countBalls(int l, int h) {
int[] cnt=new int[46],cache=new int[h+1];
for(int i=1;i<=h;i++)cache[i]=cache[i/10]+i%10;
for(int i=l;i<=h;i++)cnt[cache[i]]++;
int ans=0;
for(int e:cnt)if(ans<e)ans=e;
return ans;
}
}

Java程式碼三:
class Solution {
public int getBitSum(int n){
int bitSum=0;
while(n!=0){
bitSum+=n%10;
n/=10;
}
return bitSum;
}
public int countBalls(int l, int h) {
int[] cnt=new int[46];
int ans=0,bitSum=getBitSum(l);
for(int i=l;i<=h;i++){
if(i%10==0)bitSum=getBitSum(i);
cnt[bitSum++]++;
}
for(int e:cnt)if(ans<e)ans=e;
return ans;
}
}

class Solution {
public int getBitSum(int n){
int bitSum=0;
while(n!=0){
bitSum+=n%10;
n/=10;
}
return bitSum;
}
public int countBalls(int l, int h) {
int[] cnt=new int[46];
int ans=0,bitSum=getBitSum(l);
for(int i=l;i<=h;i++){
if(i%10==0){
int num=i/10;
bitSum=0;
while(num!=0){
bitSum+=num%10;
num/=10;
}
}
cnt[bitSum++]++;
}
for(int e:cnt)if(ans<e)ans=e;
return ans;
}
}

