奇安信笔试

第一题爬楼梯
import java.util.Scanner;

public class anxin {

    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        System.out.print(climb(n));
    }
    public static int climb(int n){
        int [] a=new int[n+1];
        if(n==1){
            return 1;
        }
        if(n==2){
            return 2;
        }
        if(n>36||n<=0){
            return 0;
        }
        a[1]=1;
        a[2]=2;
        for(int i=3;i<=n;i++){
            a[i]=a[i-1]+a[i-2];
        }
        return a[n];
    }
}
第二题分房子
三条规则
规则1:每户最少分得一套
规则2:人口多的家庭分的比人口少的多
规则3:人口相同的家庭分的可以不一样
求所有家庭最少分的房子总和
输入:【3,2,4】
输出:5
输入:【4,1,3,3,3】
输出:7
 public static int house (int[] person) {
            if(person==null){
                return 0;
            }
            int n=person.length;
            int [] a=new int[n];
            int res=person[0];
            for(int i=0;i<n;i++){
                res=Math.min(res,person[i]);
            }
            int cnt=0;
            for(int i=0;i<n;i++){
                if(person[i]==res){
                    a[i]=1;
                    cnt=i;
                }
            }
            for(int i=cnt-1;i>=0;i--){
                if(person[i]>person[i+1]){
                    if(i+1==cnt){
                        a[i]=2;

                    }
                    a[i]=a[i+1]+1;
                }
                else if(person[i]<person[i+1]){
                        a[i]=a[i+1]-1;
                }
                else{
                    a[i]=1;
                }
            }
            for(int i=cnt;i<n-1;i++){
                if(person[i]>person[i+1]){
                    a[i+1]=a[i]+1;
                }
                else if(person[i]<person[i+1]){
                    if(i==cnt){
                        a[i+1]=2;
                    }
                    a[i+1]=a[i]+1;
                }
                else{
                    a[i+1]=1;
                }
            }
            int sum=0;
            for(int i=0;i<n;i++){
                sum+=a[i];
            }
            return sum;
        }



#奇安信##笔试题目#
全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
牛客网
牛客企业服务