#阿里笔试#
7.30笔试
第一题(通过100%):
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.StreamTokenizer;
import java.util.LinkedList;
public class Main{
public static void main(String[] args) throws IOException {
StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
String str;
st.nextToken();
int k=(int)st.nval;
st.nextToken();
long n=(long)st.nval;
n--;
LinkedList stack=new LinkedList<>();
while (n>0){
stack.addLast(n%9);
n/=9;
}
long ans=0;
while(!stack.isEmpty()){
ans*=10;
if(stack.peekFirst()>=k){
ans+=stack.pollFirst()+1;
} else{
ans+=stack.pollFirst();
}
}
System.out.println(ans);
}
}
7.30笔试
第一题(通过100%):
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.StreamTokenizer;
import java.util.LinkedList;
public class Main{
public static void main(String[] args) throws IOException {
StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
String str;
st.nextToken();
int k=(int)st.nval;
st.nextToken();
long n=(long)st.nval;
n--;
LinkedList
while (n>0){
stack.addLast(n%9);
n/=9;
}
long ans=0;
while(!stack.isEmpty()){
ans*=10;
if(stack.peekFirst()>=k){
ans+=stack.pollFirst()+1;
} else{
ans+=stack.pollFirst();
}
}
System.out.println(ans);
}
}
全部评论
第二题(通过0%,神奇):
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.StreamTokenizer;
import java.util.Comparator;
import java.util.PriorityQueue;
public class Main{
public static void main(String[] args) throws IOException {
StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
st.nextToken();
int N=(int)st.nval;
while(N-->0){
st.nextToken();
int n=(int)st.nval;
st.nextToken();
int m=(int)st.nval;
PriorityQueue<int[]> queue=new PriorityQueue<>(new Comparator<int[]>() {
@Override
public int compare(int[] a, int[] b) {
return (b[1]-b[0])/(b[1]*(b[1]+1))-(a[1]-a[0])/(a[1]*(a[1]+1));
}
});
for(int i=0;i<n;i++){
st.nextToken();
int a=(int)st.nval;
st.nextToken();
int b=(int)st.nval;
queue.offer(new int[]{a,b});
}
for(int i=0;i<m;i++){
int[] arr = queue.poll();
arr[0]++;
arr[1]++;
queue.offer(arr);
}
double ans=0;;
while (!queue.isEmpty()){
int[] arr = queue.poll();
ans+=(double)arr[0]/arr[1];
}
ans/=n;
System.out.println(ans);
}
}
}
分享
发现好像是return (b[1]-b[0])/(b[1]*(b[1]+1))-(a[1]-a[0])/(a[1]*(a[1]+1)); 这里一直是return 0;因为你这里int除法得到的是0,需要转为float;不过思路很强,已经很厉害了~
分享
小红书
官网直投
相关推荐
点赞 评论 收藏
转发
投递小米集团等公司7个岗位 >
点赞 评论 收藏
转发