zoukankan      html  css  js  c++  java
  • 阿里笔试题

     1     public static void main(String[] args) {
     2         char[] s ={'3', '2', '3', '^', '3','^', '1'};
     3         eatgold(s);
     4     }
     5 
     6     private static void eatgold(char[] value) {
     7     //    char[] value=value.toCharArray();
     8         int length=value.length;
     9         int count=0;
    10         //计算二叉树的层数
    11         while(length>0){
    12             length-=Math.pow(2, count);
    13             count++;
    14             
    15         }
    16         for(int i=0;i<value.length;i++){
    17             if(value[i] == '^'){
    18                 value[i]= '0';
    19                 
    20             }    
    21         }
    22         ArrayList<Integer> list=new ArrayList<Integer>();
    23         //计算二叉树每一层的和
    24         for(int i=0;i<count;i++){
    25             int index=0;
    26             for(int j=(int) Math.pow(2, i)-1;j<Math.pow(2, i+1)-1&&j<value.length;j++){
    27                 index += Integer.parseInt(value[j]+"");                
    28             }
    29             list.add(index);    
    30         }
    31         int sum=0;
    32         for(int i=0;i<list.size();i++){
    33             sum+=list.get(i);            
    34         }
    35         //两个端点的数,是去除里面第一个,或者最后倒数第二个,比较去掉最小的那个
    36         int max=sum-Math.min(list.get(1), list.get(list.size()-2));
    37         int maint=0;
    38         //中间的几个相邻的去除,找出最大的
    39         for(int i=1;i<list.size()-1;i++){
    40             maint=sum-list.get(i-1)-list.get(i+1);
    41             if(max<maint){
    42                 max=maint;
    43             }            
    44         }
    45         System.out.println(max);    
    46     }
  • 相关阅读:
    zabbix监控nginx的性能
    常用iptables命令
    shell脚本小示例
    打印菜单脚本
    ping主机脚本
    Linux网络配置脚本
    多磁盘自动分区自动挂载脚本
    深入js系列-类型(null)
    深入js系列-类型(开篇)
    first-child、last-child误解
  • 原文地址:https://www.cnblogs.com/sunli0205/p/6773029.html
Copyright © 2011-2022 走看看